【发布时间】:2013-01-07 14:34:25
【问题描述】:
在相关问题中没有找到任何内容。很可能是超级菜鸟,但无论如何我都会问/我的 .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:警告:缺少基本类型;整数假设
xbee_api.h:19: 错误: ”;”预计
xbee_api.h:19:警告:缺少基本类型;整数假设
xbee_api.h:21:警告:缺少基本类型;整数假设
,然后继续(错误太多)
我以为是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 ?也许尝试添加'typedef unsigned char uint8_t;'在那个定义之前......要么它会有所帮助,要么它会抱怨你正在重新定义它。
-
您可能需要
#include <stdint.h>才能获得uint8_t。 -
xbee_api.h:19:你也可以给你代码的行号吗?至少第一行有多少?这样我们就可以知道哪条线出了问题。 -
如果
_pack_struct是“packet structure”的缩写,我建议不要使用它,以免与“packed structure”混淆,后者是另一回事。
标签: c typedef microcontroller unions microchip