int main()
{
struct Line
{
char start;
char end;
char L;
char R;
};
struct point
{
Line l1;
Line l2;
Line l3;
int k;
};
我想把Line类型中的成员定义成point类型,怎么实现呢???
使用前置声明,并且在Line里使用point的指针类型
#include<stdio.h>
struct point;
struct Line
{
char start;
char end;
char L;
char R;
point *p1;
};
struct point
{
Line l1;
Line l2;
Line l3;
int k;
};
void main()
{
}
C语言要求先申明后使用,所以你可以加上一行
struct point;
在Line结构体前面声明point,再在Line结构体中,声明point*类型的,不能用point类型,否则会出错。
前置声明point结构体,再在Line中使用。当编译到Line结构体时编译器没有足够的信息知道piont结构体的大小,所以只能用point的指针类型。