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