我定义了一个这样的结构:
typedef struct __attribute__((packed)) {
UInt8 a;
UInt16 b;
UInt8 c[15];
} myStruct;
当我试图获得价值时
UInt8 c = packet->c;
我收到以下错误
指向整数转换的不兼容指针,该整数转换使用类型为"UInt8"的表达式初始化"UInt8"(又名"无符号字符"([15]
我需要转换为什么类型才能编译?我尝试在不同的地方添加 [15] 下标,但无法解决。还解释了[15]
在UInt8 c[15];
中的含义
谢谢
我想packet
被声明为myStruct packet;
。如果是这样,packet->c
是一个UInt8
数组,您最多可以在此成员中存储 15 个项目。这就是为什么您不能将其值分配给单个UInt8
的原因。将UInt8 c = packet->c;
替换为UInt8* c = packet->c;
。若要获取第一个c
项,请使用以下代码:UInt8 firstC = c[0];
。