在C中,可以使用\
字符將預處理程序語句擴展到多行。切斷預處理程序行
#define SWAP(a, b) { \
a ^= b; \
b ^= a; \
a ^= b; \
}
這會蔓延宏出了幾行,但有沒有辦法剪線的微距關閉之前結束了嗎?即:我想在與宏相同的行編寫代碼,但不希望它成爲宏的一部分。例如,是否有辦法做到以下幾點?
#include <stdio.h> (some character here to end macro) int main(int argc, const char **argv) { return 0; }
有沒有辦法合法地放置在同一行的預處理語句和main
函數(或任何其他代碼)?
宏預處理器是相當機械的,沒有辦法將它短路。抱歉。也就是說,沒有什麼可以阻止您將代碼放在與上述代碼相同的行上。 –
你爲什麼要這麼做? C足夠神祕而沒有去追求單線......這可能是一個半可信的理由,但這不是一個明智的理由。 –
有更好的方法來編寫[IOCCC](http://ioccc.org)條目。 – devnull