2013-08-02 63 views
0

我使用向前声明,但仍然得到错误:'链接'没有命名一个类型。为什么?正向声明不起作用,没有类型错误

struct link; 

struct node 
{ 
    link *head_link;   <------- this is the error location 
    node *next_node; 
}; 

struct link 
{ 
    link *next_link; 
    node *connect_node; 
}; 

回答

0

你声明一个叫做结构链接类型,它不只是链接,这样写:

struct node 
{ 
    struct link *head_link; 
    struct node *next_node; 
}; 

另外,声明称为链路与typedef类型。

+0

所以我将前向声明更改为 struct node;并且在真正的结构节点声明之前有真正的结构链接声明,它仍然给我同样的错误:'link'不会命名一个类型。它不会给我错误的'节点'?另一方面,我如何可以typedef前向声明,以便保留名称链接和节点? – Anthony

+0

我用'边缘'代替了所有的'链接'这个词,它没有问题。我想链接是一个我不知道的关键字。 – Anthony