如何使 printf 显示枚举类型的变量的值?例如:
typedef enum {Linux, Apple, Windows} OS_type;
OS_type myOS = Linux;
我需要的是类似
printenum(OS_type, "My OS is %s", myOS);
必须显示字符串“Linux”,而不是整数。
我想,首先我必须创建一个值索引的字符串数组。但我不知道这是否是最美丽的方式。有可能吗?
原文由 psihodelia 发布,翻译遵循 CC BY-SA 4.0 许可协议
确实没有漂亮的方法可以做到这一点。只需设置一个由枚举索引的字符串数组。
如果你做了很多输出,你可以定义一个运算符<<,它接受一个枚举参数并为你进行查找。