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

标签 c enums

如何在 C 中枚举所有 enum 名称和值以像打印一样

printf("Name: %s, value: %d\n", name, value);

?

最佳答案

查看 the X macro :

#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

关于c - 枚举 C 中的所有枚举名称/值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20032373/

相关文章:

c - 段。哈希表 ADT 中的错误 - C

c - 下面的代码在 C 语言中是如何计算的?

c - 简单的程序段错误

generics - 如何为返回正确类型的枚举实现 get 方法?

c# - 你能在 C# 中循环枚举吗?

c++ - 我怎样才能让它更快? (C/C++) OpenCV

swift - 具有相同类型 'XXXX' 作为参数的无效初始化程序调用

C++:设计:我应该在这里使用枚举吗?

c++ - 具有 int 类型的枚举类的 printf 不适用于 clang

c++ - 如何从另一个程序运行一个程序并通过 C 或 C++ 中的标准输入将数据传递给它?