问题描述
typedef struct
{
A *data;
}A;
最初本人以这种形式构建结构体会发现,这种结构体的构建会出现问题,原因是因为A变量名的定义是在结构体定义结束之后才完成的,而结构体中定义的A这个时候还没有定义,所以这个结构体内无法识别到A
问题前提
1.为了在不在定义的时候使用struct A a而使用A a,则必须要使用typedef进行定义
2.为了在结构体的内部嵌套自身
因此以下只直接给出关于使用typedef定义的解决方案
解决方案
方式:在结构体定义之前先定义其typedef的变量名
typedef struct _A_ A;
struct _A_
{
A *data;
};
小技巧:struct定义的结构体名称可以以_data_的形式构成,用于区别