读书人

关于结构体解决方法

发布时间: 2012-02-29 16:44:11 作者: rapoo

关于结构体
在 "a.h "中声明了如下结构体:
typedef struct NODEINFO
{
char nodeid[41];
char hostip[16];
int port;
}NodeInfo;
在 "a.c "中定义变量的话, 如:NodeInfo node,可以

但是在其他C文件中,如在 "b.c "中有这样一个结构体
#include "a.h "
typedef struct FINGER
{
NodeInfo pre;
NodeInfo suc;
}finger;
编译出现错误, syntax error before "NodeInfo ".

把NodeInfo改成 "struct NODEINFO "也不好使,结构体:
#include "a.h "
typedef struct FINGER
{
struct NODEINFO pre;
struct NODEINFO suc;
}finger;
编译出现错误: field `pre ' has incomplete type

a.h头文件我包含了呀,请问这是怎么回事???


[解决办法]
compiler bug.

try:
#include "a.h "
struct NodeInfo; // pre declare
typedef struct FINGER
{
NodeInfo pre;
NodeInfo suc;
}finger;

读书人网 >C语言

热点推荐