1、先定义枚举
enum {
A,
B,
C,
D
};
2、定义宏
#define ABCD_VALUES \
X(A) \
X(B) \
X(C) \
X(D)
3、枚举转字符串,注意里面的宏名称ABCD_VALUES的使用
const char* ABCDenumToString(int n) {
#undef X
#define X(x) case (x): { return #x; }
#define MAKE_ENUM_CASES \
ABCD_VALUES \
default: { return "unknown enum string."; }
switch (n) {
MAKE_ENUM_CASES
}
}
4、枚举转字符串的调用
ABCDenumToString(A);//注意A是枚举值