C 語言語法嚴謹且精簡,掌握以下六大類別即可覆蓋 90% 以上的日常開發需求。
count ≠ Count)。int, while 等)及保留字(以雙底線或底線+大寫開頭)。/* ... */ —— 不可巢狀嵌套,可跨行,可置於程式碼任意位置。// ... —— 至行尾結束,推薦用於簡短說明。| 類別 | 範例 | 說明 |
|---|---|---|
| 整數常量 | 123, 0173 (八進位), 0x7B (十六進位), 123L (長整數) | 後綴 U/u 表無號,L/l 表長整數 |
| 字元常量 | 'A', '\n', '\x41' | 單引號括起,可用跳脫序列 |
| 字串常量 | "Hello", "Line1\nLine2" | 雙引號括起,編譯器自動在末尾補 \0 |
| 浮點常量 | 3.14, 1.2e-3, .5f (float) | 預設為 double,f/F 後綴指定 float |
&&, ||, !,結果為 int(0 或 1),具短路求值特性。&, |, ^, ~, <<, >>,僅適用整數型別。(type)expr,慎用,可能導致資料截斷或未定義行為。expr1, expr2,按序求值,整體值為最後一個子表達式的值。lvalue = rvalue,右結合,可鏈式賦值(a = b = 0)。cond ? expr1 : expr2,三元運算子,結果型別由兩分支協商決定。p+1)、解引用(*p)、取址(&x)、成員存取(p->m)。儲存類別 型別標識符 變數列表;
int, short, long, unsigned, char, float, double, struct Tag, union Tag, enum Tag, 自訂 typedef 名稱。auto(預設,區域變數,棧上分配)register(建議存入暫存器,不可取址)static(靜態存續期,區域保持值,全域限定連結)extern(外部連結宣告,不分配儲存空間)_Thread_local (C11,執行緒區域儲存)static 或 extern;函數參數預設為 auto;register 不可用於陣列或結構體。儲存類別 回傳型別 函數名(參數列表)
{
區域變數宣告;
陳述句序列;
return 運算式; // 無回傳值函數可省略或 return;
}
extern(預設,外部連結)或 static(內部連結,僅本檔可見)。void 表示無參數;舊式 K&R 風格(參數宣告在大括號前)已棄用,請使用 ANSI C 原型宣告。0/0.0),指標為 NULL,字元為 '\0',結構體/聯合體/陣列遞迴歸零。= value;陣列/結構體用 { ... } 巢狀列表,支援指定初始化器(C99:int a[10] = {[5] = 10})。提示: 現代 C 開發建議遵循 C99/C11 標準,啟用編譯器警告(-Wall -Wextra -pedantic),並善用靜態分析工具(Clang Static Analyzer、Cppcheck)捕捉潛在問題。