我试图用ANSI “字符串化” 预处理操作符# 向信息中插入符号常量的值, 但它字符串化的总是宏的名字而不是它的值。 你可以用下面这样的两步方法迫使宏既字符串化又扩展:#define Str(x) #x#define Xstr(x) Str(x)#define OP pluschar *opname = Xstr(OP); 这段代码把opname 置为“plus” 而不是“OP”。 在使用符号粘接操作符## 连接两个宏的值(而不是名字) 时也要采用同样的“迂回战术”。