不完整的声明
其中一个结构包含另一个结构的一个或多个成员,和自引用一样,至少有一个必须
在另一个结构内部以指针的形式存在。问题在于声明部分:如果每个结构都引用了
其他结构的标签,哪个结构的标签,哪个结构应该首先声明呢?
这个问题的解决方案是使用不完整声明。
struct B;//不完整的声明,即未完整声明完整。
struct A{
struct B *partner;//谁先被内部引用,谁就应该被声明。
};
struct B{
struct A *partner;
};
在A的成员列表中需要标签B的不完整的声明。一旦A被完整声明之后,B的成员列表也可以被声明。