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 <ctypes.h>。不。我认为这是关于名字,所以我尝试了各种各样的戏剧,如

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标准)。

最新更新