从 UInt8 到 UInt8 [] 的类型转换会出错



我定义了一个这样的结构:

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];

最新更新