到目前为止,我认为如果函数参数是enum
,那么它只能保存enum
中定义的值。但事实证明这是错误的。
代码:
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.为什么会发生?
答案 0 :(得分:3)
在需要枚举的地方可以使用任何整数值。编译器不验证整数值。
它们基本上是一种方便的方法,可以将有意义的名称分配给代码中显示为任意数字的名称。