我想使用这样的枚举值:
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”,因为我需要将它用作整数)。但它确实也有效。
提前感谢您的帮助。
答案 0 :(得分:1)
而不是:
#define DISPLAY_STATE_OK "StateOK="STATE_OK
也许:
#define DISPLAY_STATE_OK "StateOK=%d", STATE_OK
答案 1 :(得分:1)
您可以使用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
。