到目前为止,我认为如果函数参数是枚举
,那么它只能保存枚举
内定义的值。但事实证明我的做法是错误的。
代码:
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/