簡體   English   中英

Typedef用於相互指向的結構

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM