簡體   English   中英

將枚舉變量轉換為枚舉類型

[英]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;
  }
}

在大小寫標簽中,將xy強制轉換為(en)x enum類型有什么用?

這樣的代碼只是純粹的妄想症的征兆。 實際上,這可能是有害的,因為在強制執行強制轉換時,您是在向編譯器暗示您知道自己在做什么,因此它可能不會警告您錯誤的case標簽。

直接在enumswitch是完全有效的,因為enum本質上是整數類型。 您可以放心(en)強制轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM