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

C語言詞彙大全:六大詞法單元完整分類與規範

     編輯:關於C語言

C 語言源代碼由六類詞法單元組成。理解各類單元的形成規則與約束,是閱讀、編寫、除錯代碼的基石。

六大詞法單元

類別英文核心規則例子
標識符Identifier字母/下劃線開頭,後接字母/數字/下劃線;區分大小寫sum5, BOOK_1, _tmp
關鍵字Keyword語言保留,不可作標識符;共 32 個 (C89)if, while, int, return
運算符Operator1~3 字符組成,表達運算/邏輯/位元操作+, ==, &&, >>=
分隔符Separator逗號 ,、空白字符(空格/Tab/換行)int a, b; 中的逗號與空格
常量Constant字面值:數值/字符/字串/符號常量123, 'a', "hello", MAX
註釋Comment/* ... */ (C89) / // ... (C99+)/* 說明 */, // 單行

標識符命名規範與陷阱

合法

a, x, x3, BOOK_1, sum5, _internal, MAX_SIZE

非法

例子原因
3s數字開頭
s*T含非法字符 *
-3x以減號開頭
bowy-1含減號

三大注意事項

  1. 長度限制: 標準 C 不限長度,但編譯器/鏈接器可能只識別前 N 字符(早期 8 字符,現代通常 ≥ 31/63/255)。
  2. 大小寫敏感: BOOK ≠ book。
  3. 見名知意: 避免 a1, temp,用 userCount, maxRetryTimes。

關鍵字分類速查 (32 個)

分類關鍵字
類型說明int, char, float, double, void, short, long, signed, unsigned, struct, union, enum, typedef, const, volatile
流程控制if, else, switch, case, default, for, while, do, break, continue, goto, return
存儲類別auto, register, static, extern
其他sizeof (運算符實為關鍵字)

C99 新增:inline, restrict, _Bool, _Complex, _Imaginary。
C11 新增:_Alignas, _Alignof, _Atomic, _Generic, _Noreturn, _Static_assert, _Thread_local。

運算符豐富度

  • 算術:+ - * / %
  • 關係:== != < > <= >=
  • 邏輯:&& || !
  • 位元:& | ^ ~ << >>
  • 賦值:= += -= *= /= %= &= |= ^= <<= >>=
  • 其他:sizeof & * -> . [] () ?: ,

分隔符細節

  • ,:變量聲明、函數參數、初始化列表分隔。
  • 空白:關鍵字/標識符間必須至少一空白,否則合併為單一標識符(inta ≠ int a)。

常量體系

  • 數值:整數(十/八/十六進制)、浮點數(科學記號)。
  • 字符:'a', '\n', '\x41'。
  • 字串:"hello" (以 \0 結尾)。
  • 符號:#define PI 3.14159。
  • 轉義:\n \t \\ \' \" \0 \xNN \uNNNN。

註釋最佳實踐

  • 檔案頭:版權、作者、功能、版本歷史。
  • 函數頭:用途、參數、返回值、副作用、異常。
  • 複雜邏輯前:/* 此處處理邊界情況 */。
  • 調試時暫時屏蔽代碼:/* printf(...); */。
  • 嵌套註釋:C89 /* */ 不支援嵌套,C99 // 可嵌套在 /* */ 內。

總結

六大詞法單元是 C 語言的「原子」。精通標識符命名、關鍵字分類、運算符優先級、常量表示、註釋規範,能讓代碼在詞法層面就具備高可讀性與低歧義性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved