1. 症状
自己参照する要素を持つ構造体を定義するとコンパイルエラーとなる
1.1. サンプルコード
1 2 3 4 |
typedef struct st_node { int id; NODE *node; } NODE; |
1.2. エラーメッセージ
1 2 |
sample.c:6:3: error: unknown type name ‘NODE’ NODE *node;<code> |
2. 回避策
typedef と 構造体宣言を分離する。構造体 st_node の宣言前であっても typedef は成功する。
1 2 3 4 5 6 |
typedef struct st_node NODE; struct st_node { int id; NODE *node; }; |