參考《C++ Primer》錯誤分類,系統整理 C++ 程式設計中三大錯誤類型與七大類別 37 項具體錯誤現象,助開發者建立錯誤預防檢查清單。
| 類型 | 定義 | 發現階段 |
|---|---|---|
| 語法錯誤 | 違反 C++ 語法規則(結構、拼寫) | 編譯期 |
| 邏輯錯誤 | 演算法/程式碼與解題原意不符 | 測試/執行期 |
| 執行錯誤 | 運行環境導致(除零、記憶體不足、檔案不存在) | 執行期 |
'a' 與字串常數 "a" 混用%d 對 float)int 數值範圍導致溢位var vs Var)a[row][col])== 與賦值 = 混淆++/自減 -- 副作用順序不當(未定義行為)= 當作「等於」判斷scanf 忘記 & 取址if (cond); { ... })a(i)char str[] 與字元指標 char *pswitch 分支漏 break 導致貫穿'a' 與字串 "a" 表示混淆#include 導致隱式宣告警告/錯誤fopen 或模式不符(r vs w、二進制/文字)new 無 delete、malloc 無 free)-Wall -Wextra -Werror (GCC/Clang) / /W4 /WX (MSVC)。std::vector/string/span 替代裸陣列/指標,用 RAII 管理資源,用 auto 減少類型錯誤。「試圖一次寫出完美程式幾乎不可能。」—— 豐富經驗源於無數次踩坑與修正。建立系統性錯誤知識庫,配合工具鏈與工程規範,才能將錯誤率壓至最低。