核心原則:寫一段、測一段、穩一段
「寫完所有函數再一起除錯」是新手最常犯的錯誤。程式碼量一大,錯誤交織,根本無從下手。正確節奏:
- 先實作被呼叫的底層函數(如函數 B),獨立編寫測試主程式(
main())驗證輸入輸出正確。
- 通過後再實作呼叫端函數(如函數 A),此時 B 已可信,A 出問題必在 A 自身邏輯。
- 重複上述循環,逐層向上整合。
若必須先寫呼叫端(函數 A)怎麼辦?
使用 存根函數:
// 存根版本 B:先回傳固定值,讓 A 能編譯跑流程
int B(int x) {
return 42; // 或根據 x 回傳預期測試值
}
待 A 邏輯驗證無誤後,再替換為真正的 B 實作並測試。
工具鏈建議
- Vim + GDB:經典組合,適合終端機環境,學習曲線較陡但極強大。
- VS Code + C/C++ Extension + GDB/LLDB:現代圖形化介面,支援斷點、變數監看、呼叫堆疊,上手快。
- CLion / Visual Studio:整合式 IDE,專案管理、重構、靜態分析一站式完成。
無論用何工具,「小步提交、頻繁測試、單元測試先行」 才是大型 C 專案不失控的關鍵。