VC++ 6.0 常見編譯錯誤代碼與解決對照表
C2001: newline in constant
- 字串/字元常量中出現換行。
- 字串常量缺少結尾雙引號。
- 字串內出現未轉義的雙引號。
- 字元常量缺少結尾單引號。
- 語句中誤輸入單/雙引號。
C2015: too many characters in constant
- 字元常量(單引號)包含超過 1 個字元(轉義序列算 1 個)。
- 字元常量缺少右單引號導致吞噬後續字元。
C2137: empty character constant
C2018: unknown character '0x##'
- 原始碼出現全形符號、中文字或非 ASCII 字元且未包在字串常量中。
C2041: illegal digit for base '8'
- 八進制常數(以 0 開頭)包含 8 或 9,如
089。
C2065: undeclared identifier
- 變數/函數/類別名稱未宣告:拼錯、大小寫錯、忘記 `#include`、使用在宣告前、作用域外引用、前一行語法錯誤導致連鎖誤判。
C2086 / C2374: redefinition
- 同一作用域重複定義同名變數,後者並初始化則為 C2374。
C2143: syntax error : missing ';' before 'identifier'
- 經典誤報:真正錯誤通常在上一行(缺分號、語句不完整、頭文件尾部有誤)。
C4716: must return a value
C4508: main should return a value
- `main` 未宣告回傳型別且無 `return`,編譯器假定 `int` 並警告。
C4700: local variable used without initialization
除錯建議
- 優先修復第一個錯誤,後續多為連鎖誤報。
- 善用「前一行缺分號」經驗法則定位 C2143。
- 開啟警告等級 4 (`/W4`) 盡早發現 C4700 等潛在問題。
copyright ©
萬盛學電腦網 all rights reserved