我正在尝试执行以下操作:
#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
语句中正确输出它们,但是 Bloodshed/DevC++ 编译器给了我以下错误:
24:1 G:\BIN\cLang\macro2.cpp 粘贴“\”和“n”未提供有效的预处理令牌
我失踪的事实在哪里?