我已声明了类似的typedef结构:
typedef struct {
u8 member_a;
u32 member_d;
u32 member_c;
u16 member_d;
} __attribute__((packed)) fourmembers;
然后,我创建了一个名为“limp”的变量,其类型为“fourmembers”:
fourmembers limp;
接下来,我试图为“fourmembers”变量的“member_a”成员分配一个值,如下所示:
limp.member_a = 0x20;
结果是GCC发出以下错误:
error: 'fourmembers' has no member named 'member_a'
有谁能告诉我我做错了什么?
答案 0 :(得分:3)
您有两个名为member_d
的成员变量。这可能没有帮助。
一旦我改变了,我就可以得到一个简短的代码片段来编译而没有问题。因此,如果这不能解决您的问题,那么您需要发布一个展示问题的小型完整示例。
答案 1 :(得分:2)
你所做错的不是查看第一个编译器错误 - 这个错误告诉你为什么编译器无法创建fourmembers
结构。这个错误是u8
不存在。
答案 2 :(得分:0)
uint8_t
uint16_t
等。这实际上是编译错误的来源。__attribute__((packed))
。忘记你了解过它。这总是错的。