首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于结构体解决方法

2012-02-29 
关于结构体在 a.h 中声明了如下结构体:typedefstructNODEINFO{charnodeid[41]charhostip[16]intport}

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

热点排行