关于结构体
在 "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;