錯誤代碼含義
| 錯誤碼 | 含義 | 常見原因 |
| C2143 | 語法錯誤:缺少 ';' 在 '}' 前 | 漏寫分號、大括號不匹配、前一行語句未結束 |
| C2059 | 語法錯誤:'' | 關鍵字拼寫錯、運算符誤用、宏展開異常 |
| C2100 | 非法的間接引用 | 對非指針類型使用 *、對非常量賦值、左值錯誤 |
排查步驟
- 雙擊錯誤列表定位行:Visual Studio 輸出窗口雙擊可跳轉到報錯行,但真正錯誤往往在前幾行(如漏分號導致後續行誤判)。
- 檢查報錯行前 5~10 行:重點看分號、括號、關鍵字拼寫、宏定義。
- 對照「標準答案」逐字比對:若是跟敲教程代碼,逐行核對標點、大小寫、全半角字符。
- 預處理輸出:若涉及宏,右鍵源文件 →「預處理」生成 .i 文件,查看宏展開後的真實代碼。
典型案例
// 錯誤:漏分號
int a = 10
int b = 20; // 這裡報 C2143、C2059
// 錯誤:宏定義帶分號
#define MAX 100;
int arr[MAX]; // 展開為 int arr[100;]; → C2059
// 錯誤:左值錯誤
int* p = &a;
*p + 1 = 5; // C2100,運算結果非左值
建議
- 啟用警告等級 4 (/W4),編譯器會提示更多潛在問題。
- 使用
clang-format 或 IDE 格式化工具統一風格,減少手誤。
- 遇到連續多個報錯,只修復第一個再重新編譯,後續往往是連鎖反應。