2012-10-09 71 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定義之前完全確定。