2012-10-09 39 views
0

可能重复:
Circular definition in C要声明内结构包括参考外结构

typedef struct{ 
    node *next; 
    node *last; 
} doubleLink; 

typedef struct{ 
doubleLink doubleLink; 
int data; 
} node; 

上面是注定尝试用双链路定义一个对象。 放置任何类型定义之前,其他提请“未知类型” 一个明显的办法是在doubleLink指针类型说明符更改为void * 的编译错误,但我不知道是否有更多的“无害”的解决方案,比方说,也许 我可以在不定义它的情况下声明节点结构?

我知道这一定是一个经常被问到的问题,但我不知道什么关键字可以找到它。

+5

搜索“前向声明” – thumbmunkeys

回答

1

node向前declacation:

struct node; 
typedef struct{ 
    struct node *next; 
    struct node *last; 
} doubleLink; 

当你使用指针,你不需要有这种类型的doubleLink定义之前完全确定。