error 2143: missing ':' before ';'
宏定義或 `typedef`/`enum` 結尾**缺少分號**,導致預處理/編譯器在後續語句看到 `:` 時困惑。例如:
#define LINE_TYPE 1 // 缺少分號(其實宏不需分號,但若定義為代碼塊需注意)
typedef enum { A, B } MyEnum // 缺少分號
// 下一行代碼
int x; // 報錯指向這裡
// 枚舉
typedef enum { LINE_TYPE = 1, RECT_TYPE } DrawType; // 加分號
// 宏(不加分號,但注意括號)
#define LINE_TYPE 1
編譯器報錯行數往往偏後,**實際錯誤在前一語句結尾**。