先有鸡还是先有蛋,这是个问题。所以想要让下面的代码编译通过是不可能的:
typedef struct a A;
typedef struct b B;
struct a
{
B bb;
int i;
};
struct b
{
A aa;
int i;
};
没办法,看来只有用指针了
#include <stdio.h>
typedef struct a A;
typedef struct b B;
struct a
{
B *bb;
int i;
};
struct b
{
A *aa;
int i;
};
int
main(void)
{
A a1;
B b1;
a1.i=1;
b1.i=2;
a1.bb=&b1;
b1.aa=&a1;
printf("i: %d/n",a1.bb->i);
printf("i: %d/n",b1.aa->i);
}
于是这样,代码就可以工作了