嘿看看代碼:MACRO錯誤使用switch語句時
#define SUFFIX(n) (switch(n) \
{ \
case 1: printf("st\n"); \
break; \
\
case 2: printf("nd\n"); \
break; \
\
case 3: printf("rd\n"); \
break; \
} \
)
調用上面的宏主:
int main()
{
printf("%s", suffix(1));
}
但是,當我把這個我得到一個錯誤信息:
expected expression before switch
但我缺少什麼表達方式?
我覺得你很混淆表達式和語句以及GNU複合表達式...... – 2013-02-09 23:03:14
你想要一個函數,而不是宏。 – Gabe 2013-02-09 23:04:03
會發生什麼如果我使用宏。我認爲functio的開銷會在每次調用它的時候殺掉一些時間,爲什麼不使用宏呢?只是要求BTW – user1971996 2013-02-09 23:05:15