詭異的C define編譯錯誤

2021-04-22 14:06:49 字數 639 閱讀 4277

前幾天寫**的時候遇到了乙個十分詭異的編譯錯誤。對於下面的**,你能夠發現問題在那裡嗎?

1:

#define test(a, b, c) /

2:         a;            /
3:

if (b) /

4:             c
編譯器給出了下面這個錯誤資訊:

去掉多餘的空格,再次編譯,通過。

其實對於c/c++的預處理器而言,很容易就可以過濾掉/後面多餘的空格,而沒有必要由此引發語法錯誤。就算是要引發語法錯誤,也必須得有乙個合理清晰的錯誤資訊,不然只會浪費使用者的時間。

mk編譯錯誤

要在工程 中加乙個巨集去控制 在config.mk中定義這個巨集 enable it6263 1 在compile option.mk中根據這個值來定義巨集 ifeq enable it6263 1 cc opts denable it6263 1 else cc opts denable it62...

Greta 編譯錯誤

背景 greta2.6.4在vs2008編譯通過,在vs2013中,編譯出現以下錯誤 1 regexpr2.cpp 1 c users administrator desktop greta greta restack.h 56 error c2332 struct 缺少標記名 1 c users ...

c 編譯錯誤

一.變數未定義的引用 1.如果變數是類中的靜態成員,需要先在類外部初始化。否則會出現此種錯誤 二。標頭檔案包含了,卻報 zsp ipc proxy client.hh 8 1 錯誤 expected class name before endif 注意不能包含這些函式所在庫的標頭檔案。比如info ...