gpt4 book ai didi

c++ - typedef struct 与 struct - ‘struct' 的存储大小未知

转载 作者:行者123 更新时间:2023-11-28 04:44:54 30 4
gpt4 key购买 nike

<分区>

我正在尝试蓝牙编程,遇到了这个我不明白的问题。基本上,当我使用 typedef 结构定义时,编译器会抛出错误:

temp_testcode.c:11:23:错误:“head”的存储大小未知

通过gcc temp_testcode.c简单编译的代码如下:

#include <stdint.h>

typedef struct {
uint8_t code;
uint8_t ident;
uint16_t len;
} __attribute__ ((packed)) l2cap_cmd_hdr;

/**
struct l2cap_cmd_hdr {
uint8_t code;
uint8_t ident;
uint16_t len;
};
*/

int main(int argc ,char* argv[]) {
struct l2cap_cmd_hdr head;
}

虽然一旦我使用结构的较低定义(当前已注释掉),代码编译得非常好。所以要么是 typedef struct 的问题,要么是 __attribute__ ((packed))

的问题

之前关于 typedef 结构的 stackoverflow 帖子没有帮助我(typedef struct vs struct definitions),因为我不知道如何使用 typedef 结构在 main 方法中进行结构初始化工作 (而不是我当前注释掉的版本)。这是必要的,因为蓝牙头文件都这样定义它们的结构。

所以:

  • 如何使用 typedef struct 在 main 方法中进行结构初始化?
  • 为什么我的代码不起作用?

感谢您的宝贵时间和帮助!

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com