7

在相关问题中没有找到任何内容。很可能它是超级菜鸟,但无论如何我都会问/我的 .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;

或其他。没有什么帮助。我被困住了,因为我相信我正确地遵循了语法。有什么帮助吗?

4

1 回答 1

9

uint8_t位于stdint.h,而不是ctype.h(也不存在 ctypes.h,不存在这样的头文件)。您必须使用遵循 C 标准较新版本的编译器才能找到此标头(C99 或 C11 标准)。

于 2013-01-07T14:41:29.157 回答