私は現在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;
};