C语言预处理器有一个功能叫做字符串化。它允许从宏参数创建(窄)字符串字面量。可以像这样使用:
#define PRINTF_SIZEOF(x) printf("sizeof(%s) == %d", #x, sizeof(x))
/* stringification ^^ */
使用示例:
PRINTF_SIZEOF(int);
...可能会打印:
sizeof(int) == 4
如何从宏参数创建一个宽字符串字面值?换句话说,我该如何实现 WPRINTF_SIZEOF?
#define WPRINTF_SIZEOF(x) wprintf( <what to put here?> )