我尝试做以下,使字符串或字符常量与宏展开:如何使用##操作
#define mkstr(str) #str
#define cat(x,y) mkstr(x ## y)
int main()
{
puts(cat(\,n));
puts(cat(\,t))
return 0;
}
的puts
语句都可以导致误差。作为\n
和n
都是预处理程序标记我希望他们在那些puts
报表正确输出,但流血/ DEVC++编译器给我下面的错误:
24:1 G:\BIN\cLang\macro2.cpp pasting "\" and "n" does not give a valid preprocessing token
在哪里其实我失踪?
为什么'/'和'n'给出'\ n'? –
dev-C++编译器是**古代**。比IE6更糟糕。不要使用它。获取最新的GCC。 – ThiefMaster