我遇到过将enum
变量转换为enum
类型的代码。我无法理解这种铸件的用途。对于E. g。
typedef enum{x,y,z} en;
void main(){
en const v;
switch(v){
case (en)y : {
}
break;
case (en)x: {
}
break;
default : {
foo();
}
break;
}
}
在案例标签中,x
或y
对enum
类型的投射有什么用?
答案 0 :(得分:3)
这样的代码是完全偏执的症状,这就是全部。事实上,它可能有害,因为在强制演员时,你向编译器暗示你知道你在做什么,所以它可能不会警告你错误的案例标签。
直接switch
上的{p> enum
完全有效,因为enum
s基本上是整数类型。您可以放心地放弃(en)
演员。