【发布时间】:2014-02-10 16:56:34
【问题描述】:
我正在使用 gcc,我编译了这段代码,它应该会抛出错误,但它运行成功。
enum DIRECTION {EAST,WEST,NORTH,SOUTH};
int main(void) {
enum DIRECTION currentDirection = 10;
printf("%d\n",currentDirection);
return 0;
}
输出: 10
【问题讨论】:
-
为什么你认为它应该抛出错误?
-
据我所知,枚举不允许任何其他值。
-
C 的类型没有你希望的那么强...
-
你的枚举只是一个“int”。因此,您可以分配一个超出范围的数字
-
当您使用
class关键字定义enum时,在C++中也是如此。