// 寫法 1:帶標籤 + typedef 別名
typedef struct Student {
int id;
} Stu;
// 寫法 2:匿名結構 + typedef 別名 (推薦)
typedef struct {
int id;
} Stu;
之後即可直接用 Stu s1; 宣告變數,無需加 struct 關鍵字。
typedef struct tagMyStruct {
int iNum;
long lLength;
} MyStruct;
tagMyStruct 是**結構標籤**,配合 struct 使用:struct tagMyStruct var;MyStruct 是 **typedef 別名**,直接使用:MyStruct var;| 宣告方式 | C | C++ |
|---|---|---|
struct tagMyStruct var; | ✅ | ✅ |
MyStruct var; | ✅ | ✅ |
tagMyStruct var; | ❌ | ✅ (C++ 隱含 typedef) |
在 C++ 中,結構標籤自動成為類型名稱,故可直接用標籤宣告;C 則需显式 typedef 或加 struct。
typedef struct { ... } TypeName;