c - 枚举作为函数参数的实际目的是什么?

标签 c enums

到目前为止,我认为如果函数参数是枚举,那么它只能保存枚举内定义的值。但事实证明我的做法是错误的。

代码:

typedef enum
{
    a = 0,
    b,
    c
} X;

typedef enum
{
    e = 3
} Y;

void fn (X var)
{
    printf ("%d",var);
}

int main()
{
    fn (e);
    return 0;
}

函数fn()接受值e,其输出为3。为什么会发生这种情况?

最佳答案

在需要枚举的地方可以使用任何整数值。编译器不会验证整数值。

它们基本上是一种为代码中显示为任意数字的内容分配有意义的名称的便捷方法。

关于c - 枚举作为函数参数的实际目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16809314/

相关文章:

java - 在java枚举中自动赋值

c# - 通用枚举到 SelectList 扩展方法

TypeScript:从枚举类型推断枚举值类型

计算数组元素的总和

c - 在 C 中,文字字符串地址是否总是大于任何分配的字符串地址?

c - 调用函数时出现段错误

c++ - 将数字范围映射到cpp中的值的简便方法

c - 从多个线程读取 int 是否安全?

c++ - 连续位的长度 1 流后跟 0

scala - 通过 scala 或 java 中的继承扩展一组命名值