[英]Typedef'ed structs that have pointers to each other
Ansi C允許兩個不同的結構可以包含彼此的指針(也以結構形式顯示 - 它們指向彼此 )。 我知道在許多情況下這不是一個好主意,但這不是問題。 是否有可能使用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;
同
錯誤:重新定義typedef'B'
是否可以告訴編譯器稍后將聲明'B'並在A的定義中使用它?
你可以這樣做:
typedef struct a A;
typedef struct b B;
struct a {
B *bb;
};
struct b {
A *aa;
};
這對你有用嗎?
問題是你已經輸入了它。
你應該做這樣的事情:
struct a;
struct b;
typedef struct a A;
typedef struct b B;
然后你可以定義struct a和b,並在a和b的定義中使用a,b,A *,B *
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.