我想连接一个字符串文字和char文字.语法错误,"abc" 'd' "efg"呈现编译器错误:
xc:4:24:错误:预期','或';' 在'd'之前
到现在为止,我必须使用snprift(不必要),尽管字符串文字的值和编译时知道的char文字.
我试过了
#define CONCAT(S,C) ({ \
static const char *_r = { (S), (C) }; \
_r; \
})
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为S没有剥离null终止符.(除了给出编译器警告.)
有没有办法编写一个宏来使用
"abc" MACRO('d') "efg" 要么 MACRO1(MACRO2("abc", 'd'), "efg") 要么MACRO("abc", 'd', "efg") ?如果有人问我为什么要这样:char文字来自一个库,我需要将字符串作为状态消息打印出来.