/ /フィールドのタイプが不完全です。既に宣言されている構造[複製]-c、コンパイラエラー、フィールド

フィールドには不完全な型があります。構造体は既に宣言されている[duplicate] - c、コンパイラエラー、フィールド

私は現在Cでプログラミングしていて、

typedef struct Stack Stack;

struct Stack {
Stack above;
Tree *t;
char *tag;
};

「フィールド「上」にある」というエラーが表示される不完全なタイプ」 上のtypedefで既に構造体を宣言しているので、なぜ問題があるのか​​わかりません。見回しましたが、これに関連するものは見つかりませんでした。ありがとう!

回答:

回答№1は0

構造体の内部に構造体へのポインタを置くことはできますが、実際の構造体は持てません。これは、おそらくスタックの目的です。

typedef struct Stack Stack;

struct Stack {
Stack *above;
Tree *t;
char *tag;
};

考えてみてください。構造Aの中に構造Bがあった場合、構造Bの中に構造Cがあり、構造Cの中に構造Dがあります。

struct Stack {
Stack above {
Stack above {
Stack above {
Stack above
...............
Tree *t;
char *tag;
};
Tree *t;
char *tag;
};
Tree *t;
char *tag;
};
Tree *t;
char *tag;
};