對於C來說,struct定義的結構體不是一種數據類型,所以每次聲明的時候需要加上struct讓編譯器知道這是結構體,為了不每次都加上struct關鍵字,可以在定義結構體的時候加上typedef關鍵字:
typedef struct{
//
}A;
A a;
對於C++來說,struct定義的結構體就是一種數據類型了,聲明的時候可以不用加上struct編譯器也知道這是結構體,但是為了兼容C,所以在定義結構體的時候可以加上typedef,其實加不加效果都一樣。
struct{
//
}A;
A a;