[英]Casting enum variable to enum type
我遇到了將enum
變量強制轉換為enum
類型的代碼。 我無法理解這種轉換的用法。 對於E。
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
強制轉換為(en)x
enum
類型有什么用?
這樣的代碼只是純粹的妄想症的征兆。 實際上,這可能是有害的,因為在強制執行強制轉換時,您是在向編譯器暗示您知道自己在做什么,因此它可能不會警告您錯誤的case標簽。
直接在enum
上switch
是完全有效的,因為enum
本質上是整數類型。 您可以放心(en)
強制轉換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.