在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