枚举C中的所有枚举名称/值

w.b*_*w.b 1 c enums

如何枚举enumC中的所有名称和值以将其打印出来

printf("Name: %s, value: %d\n", name, value);
Run Code Online (Sandbox Code Playgroud)

The*_*ask 5

看看X宏:

#define COLORS \
    X(Cred, "red") \
    X(Cblue, "blue") \
    X(Cgreen, "green")

#define X(a, b) a,
enum Color { COLORS };
#undef X


#define X(a, b) b,
static char *ColorStrings[] = { COLORS };
#undef X

printf("%s\n", ColorStrings[Cred]); // output: red
Run Code Online (Sandbox Code Playgroud)