分級推薦與核心收穫
🏆 第一梯隊:語言核心與陷阱(必讀)
| 書名 | 作者 | 核心價值 | 適合階段 |
| C 程式設計語言 (K&R) | Kernighan & Ritchie | 語言定義者親寫,極簡精煉,C 的「聖經」 | 入門後二刷、終身案頭書 |
| C 專家程式設計 | Peter van der Linden | 解剖「看似正確實則未定義」的陷阱:指標/陣列差異、序列點、連結模型、記憶體佈局 | 進階必讀,讓你從「能跑」到「懂底層」 |
| C 陷阱與缺陷 | Andrew Koenig | 經典陷阱案例集:運算子優先級、巨集副作用、型別轉換、標準庫誤用 | 配合 Expert C 閱讀,建立「未定義行為」紅線直覺 |
| 現代 C 語言程式設計 | Jens Gustedt | 涵蓋 C11/C17/C23 新特性:_Generic、原子操作、執行緒、對齊、匿名結構/聯合、編譯期斷言 | 跟上現代標準,棄用舊式寫法 |
🥈 第二梯隊:演算法、系統與工程實踐
| 書名 | 作者 | 核心價值 |
| 程式設計珠璣 | Jon Bentley | 從真實問題出發,演示如何用資料結構/演算法/位技巧/工程權衡得出優雅解法 |
| Linux 核心設計與實作 | Robert Love | 以核心子系統(排程、記憶體、VFS、網路)為線,展示 C 在系統級的實戰模式 |
| Linux 程式設計介面 (TLPI) | Michael Kerrisk | 系統呼叫、庫函式、執行緒、訊號、I/O 多工、進程間通訊的百科全書 |
| Unix 環境高級程式設計 (APUE) | Stevens & Rago | Unix/Linux 系統程式設計經典,檔案、目錄、終端機、守護進程、非阻塞 I/O |
| TCP/IP 詳解 卷 1:協定 | Stevens | 封包級剖析 TCP/IP 協定族,配合原始碼閱讀 (FreeBSD/Linux 核心網路棧) |
🥉 第三梯隊:專項深造(按需選讀)
- 嵌入式/裸機:《嵌入式系統設計》(Elecia White),《ARM Cortex-M 開發實戰指南》。
- 編譯器/工具鏈:《編譯器設計》(Cooper & Torczon),LLVM 官方教學、Clang 插件開發文檔。
- 高效能/並行:《C++ 並發程式設計實戰》(Williams) —— 原子操作/記憶體模型通用於 C11 ``。
- 安全/逆向:《軟體安全編碼標準》(Seacord),IDA Pro/ Ghidra 實戰教學。
- 數學/圖形:《電腦圖形學導論》(Hughes et al.)、《數值食譜》(Numerical Recipes in C)。
閱讀策略:不要只「看」,要「做」
- **親手敲入每個範例**,刻意修改參數、觸發錯誤、觀察編譯器警告/運行結果差異。
- **寫測試驗證書中結論**:如「`a[i] = i++` 是 UB」,寫小程式跑 GCC/Clang/MSVC 對比。
- **建立個人「陷阱卡片庫」**:Anki/Notion 記錄每個 UB、陷阱、最佳實踐,間隔重複。
- **輸出倒逼輸入**:寫技術部落格、錄影講解、參與開源專案 Code Review。
避坑提醒
- ❌ 譚浩強《C程序設計》—— 適合考試應試,**不適合工程師成長**(舊標準、非標準擴展、掩蓋 UB)。
- ❌ 「速成/21天/從入門到精通」系列—— 知識密度極低,誤導性高。
- ❌ 只看中文翻譯版—— 術語翻譯常不準(如 *lvalue/rvalue* 譯為「左值/右值」易誤解),**建議直接啃英文原版或高質量譯本(機械工業出版社、人民郵電出版社經典版)**。
結語
C 語言薄如蟬翼,深如淵海。**書單是地圖,代碼是腳步**。挑 2-3 本核心書反覆啃、大量寫碼、讀開源核心庫,你將在「指標、記憶體、未定義行為、系統呼叫」四大支柱上建立鋼鐵內功。