下(測試用gcc -E blah.c
)時,意外的預定義宏的行爲:粘貼標記
#define UNUSED(type) type UNUSED_ ## __COUNTER__
UNUSED(char const *)
UNUSED(int)
生成:
char const * UNUSED__COUNTER__
int UNUSED__COUNTER__
我期待:
char const * UNUSED0
int UNUSED1
我試着調用另一個宏,將參數括在括號內無濟於事。 如果我不粘貼令牌,它似乎工作正常。 documentation特別提到在令牌粘貼中使用__COUNTER__
。
我在做什麼錯?
沒有這個運氣:'char const * UNUSED_STR(0)'和'int UNUSED_STR(1)' – 2010-08-15 15:40:11
UNUSED_問題之後的空間是什麼? – Chubsdad 2010-08-15 15:42:09
你當然不是有意串通,是嗎?如果這一切工作,它會產生的東西,如'char const * UNUSED「0」'... – zwol 2010-08-15 16:48:42