我有一个大约100个#defines的文件,从1-100开始,每个文件都有一个唯一的字符串值.
现在我正在尝试打印这个值,但是我想要打印#define是什么,而不是值.例如:
#define FIRST_VALUE 1 var = FIRST_VALUE; printf("%s", var);
我希望printf打印FIRST_VALUE,而不是1.
有没有办法在C中这样做?或者我必须在switch语句中写出100多个case块?
您可以使用字符串化来实现您的目标:
#define FIRST_MACRO #define MACRO_TO_STRING(x) #x #includemain() { printf("%s\n", MACRO_TO_STRING(FIRST_MACRO)); }
该程序将输出:
FIRST_MACRO