在相关问题中找不到任何内容。最有可能的是它的超级菜鸟,但无论如何我都会问/我的.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;
或其他人。什么都没有帮助。我被卡住,因为我相信我正在遵循语法。有什么帮助吗?
答案 0 :(得分:7)
uint8_t
位于stdint.h
,而不是ctype.h
(也不是ctypes.h,不存在此类标头)。您必须使用遵循较新版本C标准的编译器来找到此标头(C99或C11标准)。