c - 枚举类型和从特定枚举类型创建的变量的用途是什么

标签 c enums

我正在阅读有关堆栈溢出的枚举,但找不到满意的答案

我只想知道为什么我们创建像这样的枚举类型

enum result {pass,fail};    //result - user defined type

我本来可以写
enum{pass,fail};

我只能看到枚举类型的使用是使该特定类型的变量
喜欢
enum result test;

因此,仅为此目的使用枚举类型吗? (创建枚举类型的变量)
还是有一些更好的实际用途来制作枚举类型的变量

抱歉,这似乎是一个重复的问题
但是我做过一些研究,但我对阅读的答案不满意

因为我是C语言的初学者

最佳答案

enum类型允许您为int值赋予有意义的名称。在您的示例中,您将passfail作为enum result类型的值。这使您可以做类似的事情

enum result r = pass;

另外,如果您改用数字01,则必须
int r = 1;

请注意,当您阅读enum版本时,其含义立即显而易见。当您阅读int版本时,您可能会问“为什么值1?”。和“1代表什么?”。

简而言之,enum使代码更易于人类阅读。

关于c - 枚举类型和从特定枚举类型创建的变量的用途是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50293852/

相关文章:

c++ - 链接错误 c 和 c++( undefined reference )

c++ - 在 C++ 中创建新类型时出错

c# - Java 枚举与 C# 枚举 - 缺少的功能

java - jackson 将不同的字符串反序列化为相同的枚举常量

java - 安卓枚举 : generate AAR binary with R8 on and throws "Function invocation ' name( )'" exception in client app

c - 将带有数组的结构传递给多个线程

c - 如何在构建应用程序时修复 dpdk-18.02 中的 "no valid ports"问题?

c - 为什么这些构造使用增量前和增量后未定义的行为?

c - 关于 struct 数组作为 gcc 和 vc 编译的参数

java - 为什么我会收到此编译器错误(使用枚举作为单例)?