C 語言源代碼由六類詞法單元組成。理解各類單元的形成規則與約束,是閱讀、編寫、除錯代碼的基石。
| 類別 | 英文 | 核心規則 | 例子 |
|---|---|---|---|
| 標識符 | Identifier | 字母/下劃線開頭,後接字母/數字/下劃線;區分大小寫 | sum5, BOOK_1, _tmp |
| 關鍵字 | Keyword | 語言保留,不可作標識符;共 32 個 (C89) | if, while, int, return |
| 運算符 | Operator | 1~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 | 含減號 |
BOOK ≠ book。a1, temp,用 userCount, maxRetryTimes。| 分類 | 關鍵字 |
|---|---|
| 類型說明 | 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(...); */。/* */ 不支援嵌套,C99 // 可嵌套在 /* */ 內。六大詞法單元是 C 語言的「原子」。精通標識符命名、關鍵字分類、運算符優先級、常量表示、註釋規範,能讓代碼在詞法層面就具備高可讀性與低歧義性。