自己参照構造体のtypedef宣言とスコープ
MinGWとgccでプログラムを組んでいます(OSはWin7です)。
main.cpp、variable.h、function.hの3つのファイルからなり、
variable.hで自己参照構造体とそれのtypedef宣言をしています。
以下のような感じです。
*************************
typedef struct hoge HOGE;
struct hoge{
int a,b;
double x,y;
HOGE *p1, *p2;
}
*************************
そのあとfunction.hでこのHOGE型のポインタを受ける関数を宣言しています。
void hogehoge(HOGE *p1, HOGE *p2);
これをmain.cpp内で、variable.h、function.hの順に読み込んでいます。
そして、コンパイルエラーがでます。
error: unknown type name 'HOGE'(これがずらっと)
typedefのスコープの関係なのか、それ以外の問題なのか。
煮詰まっています。アドバイスお願いいたします。m(_ _)m
お礼
回答ありがとうございます。 なるほど、通常の型と同じくClass Scopeや、Namespace Scopeになるのですね。 本当は仕様書を読むのがよいのですが、仕様書を持っていなくて。 一応、大学の図書館に頼んであるので届いたら読んでみます。