12.18 我试图用 ANSI ``字符串化" 预处理操作符 # 向信息中插入符号 常量的值, 但它字符串化的总是宏的名字而不是它的值。

你可以用下面这样的两步方法迫使宏既字符串化又扩展:
    #define Str(x) #x
    #define Xstr(x) Str(x)
    #define OP plus
    char *opname = Xstr(OP);
这段代码把 opname 置为 ``plus" 而不是 ``OP"。

在使用符号粘接操作符 ## 连接两个宏的值 (而不是名字) 时也要采用同样的  ``迂回战术"。

参考资料: [ISO, Sec. 6.8.3.2, Sec. 6.8.3.5]。

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)