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)