将枚举变量转换为枚举类型

时间:2016-03-10 12:16:58

标签: c enums

我遇到过将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;
  }
}

在案例标签中,xyenum类型的投射有什么用?

1 个答案:

答案 0 :(得分:3)

这样的代码是完全偏执的症状,这就是全部。事实上,它可能有害,因为在强制演员时,你向编译器暗示你知道你在做什么,所以它可能不会警告你错误的案例标签。

直接switch上的{p> enum完全有效,因为enum s基本上是整数类型。您可以放心地放弃(en)演员。