next up previous contents
Next: 3. 構造体の隠蔽 Up: 1. 構造体の中の構造体 Previous: 1. 構造体からの構造体の参照

2. 構造体同士の参照

複数の構造体がお互いを参照することは許されない。


誤った例
        struct P {
            struct Q q;
        };
        struct Q {
            struct P p;
        };

この例は、分かりづらいが、誤っている。何故ならば、構造体 P を宣言 した時点では、構造体 Q は宣言されていないので、構造体 P の メンバー struct Q q; を解決出来ないからである。一方、構造体 Q は、その解決していない宣言を用いているのだから、なおさら解決不可能である。 また、上の宣言は、良く見ると、どこにも具体的な型がない事にも気づくだろう。 つまり、この例は、無限にお互いを定義するだけで、実体はどこにもないのである。



Noriyo Kanayama 平成14年11月26日