1、无类型名的结构体变量在声明结构体时就得定义。
2、不同时刻声明的结构体变量,即使成员列表一致,在编译器看来也是不一致的数据类型( 假设类型一致,那就成了 重复定义数据类型了 )
例如:
struct{
int x;
}a;
struct{
int x;
}b;
b = a;//报 incompatible type error
且无类型名结构体使用限制:
1、他不能作为参数传递给一个函数,因为编译器无法对他进行类型检查;
2、也不能使被调用的函数返回一个没有结构体名的结构体变量,原因同1