在编程中一个不小心在struct定义时候就变成了两个struct相互调用导致报错。
比如说struct one {
......
struct two tmp;
}
struct two {
......
struct one tmp1;
}
这样在调用的时候就会出错,因为定义了这个struct two变量,那struct one就要预先知道struct two里面的成员,就找呀找也找不到,因为在下面才有它的定义。那实际上应该在么做?只要把调用的定义换成指针就可以了,struct two *tmp,说明这是个two类型的指针,归根结底是指针,所以编译器不管struct成员是什么只是分配sizeof(void *)这个成员就可以了,这样就可以了。