对于C来说,struct定义的结构体不是一种数据类型,所以每次声明的时候需要加上struct让编译器知道这是结构体,为了不每次都加上struct关键字,可以在定义结构体的时候加上typedef关键字:
typedef struct{
//
}A;
A a;
对于C++来说,struct定义的结构体就是一种数据类型了,声明的时候可以不用加上struct编译器也知道这是结构体,但是为了兼容C,所以在定义结构体的时候可以加上typedef,其实加不加效果都一样。
struct{
//
}A;
A a;