我们可以像这样连接相邻的字符串文字:
puts( "ABC" "DEF" );
但是,当我尝试执行此操作时,MSVC 失败并出现一个奇怪的错误:
puts( ("ABC") ("DEF") );
这意味着我可以进行一次计算,输出字符串文字,如下所示:
puts( NUM_ELEMENTS>125?"WARNING":"OK" )
但我无法连接其中多个输出的字符串文字,例如:
#define SOME_SETTING 0x0B //I sometimes wish there were binary literals
#define BIT_STR(x,n) ((x>>n)&1?"1":"0")
#define BIT_STR4(x) BIT_STR(x,3) BIT_STR(x,2) BIT_STR(x,1) BIT_STR(x,0)
...
puts( "Initializing some hardware setting: " BIT_STR4(SOME_SETTING) );
编辑:所以我的问题是......连接编译时计算的字符串文字的正确方法是什么?