间接宏扩展对令牌粘贴有何不同?

时间:2016-08-19 18:56:00

标签: c macros

我有一个看起来像这样的定义:

#define HELLO "hello"

我想制作"你好"一个宽的字符串,而不必再次输入它,所以我尝试使用这个宏并希望最好:

#define WIDEN(x) L ## x
#define WIDE_HELLO WIDEN(HELLO)

但是,这会扩展为LHELLO

我在互联网上找到了其他的例子,他们使用了一个中间宏,它可以工作:

#define WIDEN2(x) L ## x
#define WIDEN(x) WIDEN2(x)
#define WIDE_HELLO WIDEN(HELLO)

中间宏做了什么解决了这个问题?

0 个答案:

没有答案