首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言 typedef struct 完整指南:別名、標籤與 C/C++ 差異

     編輯:關於C語言

基本語法

// 寫法 1:帶標籤 + typedef 別名
typedef struct Student {
    int id;
} Stu;

// 寫法 2:匿名結構 + typedef 別名 (推薦)
typedef struct {
    int id;
} Stu;

之後即可直接用 Stu s1; 宣告變數,無需加 struct 關鍵字。

標籤 vs 別名

typedef struct tagMyStruct {
    int iNum;
    long lLength;
} MyStruct;
  • tagMyStruct 是**結構標籤**,配合 struct 使用:struct tagMyStruct var;
  • MyStruct 是 **typedef 別名**,直接使用:MyStruct var;

C 與 C++ 的差異

宣告方式CC++
struct tagMyStruct var;✅✅
MyStruct var;✅✅
tagMyStruct var;❌✅ (C++ 隱含 typedef)

在 C++ 中,結構標籤自動成為類型名稱,故可直接用標籤宣告;C 則需显式 typedef 或加 struct。

最佳實踐建議

  1. 優先使用匿名結構 + typedef:typedef struct { ... } TypeName;
  2. 避免標籤與別名同名,防止混淆。
  3. 跨語言專案時,注意 C/C++ 差異,統一風格。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved