我想像这样使用枚举的值:
enum state{
STATE_OK =0,
STATE_KO =1};
在这样的宏中:
#define DISPLAY_STATE_OK "StateOK="STATE_OK
我想像这样使用它:
printf(DISPLAY_STATE_OK);
要打印:StateOK=0
这是一个解释我的需求的基本示例。但它确实有效,有什么想法吗?也许通过用宏 #define STATE_OK 0 替换枚举(不是“0”,因为我需要将它用作整数)。但它也确实有效。
预先感谢您的帮助。
最佳答案
您可以使用 stringify 宏运算符 #
。
#define STATE_OK (0)
#define STRINGIFY_2(s) STRINGIFY(s)
#define STRINGIFY(s) #s
#define DISPLAY_STATE_OK "StateOK=" STRINGIFY_2(STATE_OK)
但这只有在您 #define
值而不是使用 enum
时才有效。
关于c - 在宏中使用枚举整数值来格式化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23392386/