关于C语言中枚举类型 枚举变量可以赋值为不在范围内的值吗?如下边的程序:

2024-11-02 04:35:56
推荐回答(3个)
回答(1):

color_type类型是对一个变量取值范围的限定,而花括号内是它的取值范围,即color_type 类型
的变量color 只能取值为花括号内的任何一个值,如果赋给该类型变量的值不在列表中,则会报错。
我看了一下你提供的教学视频,他是在ubuntu系统下编译的,linux的编译器肯定有所不同。据我所知,变量值超出范围在microsoft的编译器这边都会报错。

上面所说的强制转换:一个原本不是color_type类型的变量被你硬生生转换成该类型,没有实际意义。字符a被你转换成color_type类型,当然可以赋值啦。

回答(2):

貌似是需要强制类型转换
color=(color_type)'a';

结果为97

回答(3):

Type
cmd=(Stop,Start);

var
cmdtype: cmd;
begin
cmdtype := Stop;
end;

if constA in cmd then...
我觉得应该是这样吧?