C:typedef union
在相关问题中找不到任何相关内容。 最有可能的是它的超级菜鸟,但无论如何我都会问/我的.h文件中有以下内容:
typedef union _API_Packet_0x90{ uint8_t packet[26]; struct _pack_struct { uint8_t start; uint8_t length[2]; uint8_t addr64[8]; uint8_t addr16[2]; uint8_t options; uint8_t rfData[4]; uint8_t chksum; }; } API_Packet_0x90; API_Packet_0x90 ap90;
这是微控制器的代码,我使用的是xc8工具链(以前的Hi Tech C)。 编译器说:
xbee_api.h:19:警告:缺少基本类型; int假设
xbee_api.h:19:错误:“;” 预期
xbee_api.h:19:警告:缺少基本类型; int假设
xbee_api.h:21:警告:缺少基本类型; int假设
,这继续(错误太多)
我认为这是uint8_t,所以我添加了#include
。 不。 我以为这是关于名字的,所以我尝试了各种各样的戏剧,比如
typedef union { uint8_t packet[26]; struct _pack_struct { }; } API_Packet_0x90;
要么
typedef union { uint8_t packet[]; struct _pack_struct { }; } API_Packet_0x90;
或其他人。 什么都没有帮助。 我被卡住,因为我相信我正在遵循语法。 有帮助吗?
uint8_t
位于stdint.h
,而不是ctype.h
(也不是ctypes.h,不存在这样的头)。 您必须使用遵循较新版本C标准的编译器才能找到此标头(C99或C11标准)。