可能重复:
How to convert concatenated strings to wide-char with the C preprocessor?
我有一个使用#define定义的字符串文字:
#define B "1234\0"
如何在编译时使用此定义来获取此宽字符串文字?:
L"1234\0"
(只有#define
d字符串文字,前面加L
使其成为一个宽字符串。)
我试过了:
#define MAKEWIDE(s) L##s
但这会生成LB
。
答案 0 :(得分:7)
这样可以正常工作:
#define B "1234\0"
#define LB L"" B
答案 1 :(得分:6)
令牌粘贴需要额外的间接级别才能正确处理用作操作数的宏。尝试类似:
#define PASTE(x, y) x##y
#define MAKEWIDE(x) PASTE(L,x)