Ansi C允許兩個不同的結構體可以包含彼此的指針(也顯示在structs-that-refer-to-each-other)。我知道在很多情況下這不是一個好主意,但這不是問題。使用typedef結構可以達到相同的效果嗎?Typedef'ed結構彼此具有指針
下面的代碼工作得很好。
struct b;
typedef struct a {
struct b *bb;
} A;
typedef struct b {
struct a *aa;
} B;
但使用「B」型失敗
typedef struct b B;
typedef struct a {
B *bb;
} A;
typedef struct b {
A *aa;
} B;
與
error: redefinition of typedef ‘B’
是否可以告訴編譯器「B」將在稍後宣佈,並在使用它A的定義?
你能解釋爲什麼我使用這種方法有這個錯誤? typedef'A'的預先聲明'A'的重新定義在這裏? – klefevre