gcc4.5.0で実験
typedef struct tagHOGE HOGE; typedef struct tagHOGE { int fga; HOGE* next; } HOGE:
再定義で怒られます。
じゃあ、
typedef struct tagHOGE HOGE; struct tagHOGE { int fga; HOGE* next; }:
これは大丈夫。でも、
typedef struct tagHOGE HOGE; typedef struct tagHOGE HOGE; struct tagHOGE { int fga; HOGE* next; }:
これだとだめです。うーむ、include header内でstructへのポインタを持つこと多いんだけどなぁ。
ちなみに、Visual Studio 2005のcl.exeは全部通してくれちゃいました。ゆるいなぁ。