typedef struct A
{
int x;
} B;
这段代码实际上是两个功能的组合
第一个功能:strcut A { int x; }定义一个名为struct A的结构体
第二个功能:typedef struct A B;声明struct A的另一个名称B
所以,楼主的代码中,直到B;这一行为止,typedef这条语句都尚未完成,此时编译器根本就不知道有一个叫B的东西
所以楼主在struct A这个结构体里面,只能使用struct A来指代本类型
容易混淆的是,在C++中,struct A直接定义一个名为A的结构体,不需要typedef
{
int x;
} B;
这段代码实际上是两个功能的组合
第一个功能:strcut A { int x; }定义一个名为struct A的结构体
第二个功能:typedef struct A B;声明struct A的另一个名称B
所以,楼主的代码中,直到B;这一行为止,typedef这条语句都尚未完成,此时编译器根本就不知道有一个叫B的东西
所以楼主在struct A这个结构体里面,只能使用struct A来指代本类型
容易混淆的是,在C++中,struct A直接定义一个名为A的结构体,不需要typedef