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

C語言標識符命名規則全解析:關鍵字、保留字、最佳實踐

     編輯:C 語言問答

標識符 vs 關鍵字

標識符 是程式設計師自定義的名稱:變數、函式、結構體標籤、聯合標籤、列舉常數、宏名稱、標號。
關鍵字 是語言保留、有特殊含義的單詞,不可作標識符使用。

C99 標準關鍵字表 (32+5+7 = 44)

類別關鍵字
基礎類型int, char, short, long, float, double, void, _Bool, _Complex, _Imaginary
類型修飾signed, unsigned, const, volatile, restrict, _Atomic
儲存類別auto, register, static, extern, _Thread_local
結構/聯合/列舉struct, union, enum, typedef
流程控制if, else, switch, case, default, for, while, do, break, continue, goto, return
其他sizeof, typeof (C23), alignas, alignof, _Generic, _Static_assert, _Noreturn

標識符命名規則 (C99 §6.4.2)

  1. 首字符必須為字母 (a-z, A-Z) 或底線 `_`。
  2. 後續字符可為字母、數字 (0-9)、底線。
  3. 大小寫敏感:`count`、`Count`、`COUNT` 為三個不同標識符。
  4. 長度無標準上限,但編譯器實現通常支援 ≥ 63 字符 (外部連結) / ≥ 31 字符 (內部)。
  5. 不可與關鍵字重名。
  6. 雙底線開頭 (`__`)、底線+大寫字母開頭 (`_A`) 為實現保留,用戶代碼應避免使用。

業界通用命名慣例

實體慣例範例
變數/函式snake_caseuser_count, calculate_total
宏常數/列舉值UPPER_SNAKE_CASEMAX_BUFFER_SIZE, ERROR_TIMEOUT
結構體/聯合/列舉標籤PascalCase 或 snake_case_tNode, ListNode, list_node_t
類型定義_t 後綴 snake_caseuint32_t, size_t, pthread_mutex_t
檔案作用域 static模組前綴_parser_init, lexer_tokenize

常見錯誤示範

int 2count = 0;      // 錯誤:數字開頭
int for = 1;         // 錯誤:關鍵字
int my-variable = 2; // 錯誤:連字符非法
int _Alignas = 3;    // 警告:保留標識符
int __private = 4;   // 警告:雙底線保留
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved