C 語言詞法符號(Token)分為五大類:關鍵字、標識符、分隔符、運算符、標點符。

| 大類 | 小類 | 關鍵字 | 說明 |
|---|---|---|---|
| 數據類型 | 基本類型(5) | void, char, int, float, double | void 也用於無類型指針 |
| 類型修飾(4) | short, long, signed, unsigned | 修飾 int,可省略 int | |
| 復雜類型(5) | struct, union, enum, typedef, sizeof | sizeof 是關鍵字非函數 | |
| 存儲類別(6) | auto, static, register, extern, const, volatile | const/volatile 合稱 cv 特性 | |
| 流程控制 | 跳轉(4) | return, continue, break, goto | |
| 分支(5) | if, else, switch, case, default | ||
| 循環(3) | for, do, while | 條件為真繼續,假跳出 |
| 關鍵字 | 作用 | 內存區 | 生命周期 |
|---|---|---|---|
| auto | 自動變量(默認) | 棧 | 塊作用域 |
| static | 靜態變量/限制作用域 | 全局/靜態區 | 程序全期 |
| register | 建議寄存器存儲 | 寄存器/棧 | 塊作用域 |
| extern | 聲明外部符號 | - | - |
| const | 只讀(可能被硬件/其他線程修改) | 只讀區/數據區 | 視定義處 |
| volatile | 防止編譯器優化,每次從內存讀取 | - | - |
| 符號 | 名稱 | 用途 |
|---|---|---|
| , | 逗號 | 變量列表、參數列表、初始化列表分隔 |
| 空白符 | 空格/制表/換行 | Token 分隔、格式化輸入默認分隔 |
| ; | 分號 | 語句結束、for 循環三表達式分隔 |
| : | 冒號 | 標號、三元運算符、位域寬度 |

fmod()== >= <= !=,切勿寫成 = =&& 左偽右不算,|| 左真右不算& | ^ ~ << >>+= -= *= /= %= &= ^= |= <<= >>=sizeof(int) 或 sizeof expr,非函數調用[ ] ( ) { } * , : = ; ... # & -> .
| 符號 | 名稱/用途 |
|---|---|
| [ ] | 數組下標/變長數組聲明 |
| ( ) | 函數調用/類型轉換/分組/宏參數 |
| { } | 復合語句/初始化列表/結構體定義 |
| * | 指針聲明/解引用/乘法 |
| , | 逗號運算符/參數分隔 |
| : | 標號/三元運算符/位域 |
| = | 賦值/初始化 |
| ; | 語句結束 |
| ... | 可變參數/指定初始化器 |
| # | 預處理指令/字符串化/Token粘連 |
| & | 取地址/按位與/引用聲明 |
| -> | 指針訪問成員 |
| . | 直接訪問成員/結構體字面量 |
本文整理自「成長之路」博客,原文地址:https://7905648.blog.51cto.com/7895648/1297379