首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VC++ error 2143:missing ':' before ';' —— 宏/枚舉定義缺少分號

     編輯:程式設計綜合問答

錯誤信息


error 2143: missing ':' before ';'

常見原因

宏定義或 `typedef`/`enum` 結尾**缺少分號**,導致預處理/編譯器在後續語句看到 `:` 時困惑。例如:


#define LINE_TYPE 1   // 缺少分號(其實宏不需分號,但若定義為代碼塊需注意)
typedef enum { A, B } MyEnum  // 缺少分號
// 下一行代碼
int x; // 報錯指向這裡

排查步驟

  1. 查看報錯行**前幾行**的宏、枚舉、結構體、類定義是否以 `;` 結尾。
  2. 針對題主代碼:`LINE_TYPE` 可能是 `enum` 或 `#define`,檢查其定義處。
  3. 使用 IDE「跳轉到定義」快速定位。

修正示例


// 枚舉
typedef enum { LINE_TYPE = 1, RECT_TYPE } DrawType; // 加分號

// 宏(不加分號,但注意括號)
#define LINE_TYPE 1

編譯器報錯行數往往偏後,**實際錯誤在前一語句結尾**。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved