簡體   English   中英

為什么我應該在C ++中使用typedef聲明枚舉?

[英]Why should I have an enumeration declared with a typedef in C++?

我的代碼看起來像這樣:

enum EEventID {
  eEvent1,
  eEvent2,
  ...
  eEventN };

這被審查並改為

typedef enum {
  eEvent1,
  eEvent2,
  ...
  eEventN } EEventID;

兩者有什么區別? 為什么要做出改變? 當我看到這個問題時 ,唯一提到的typedef被低估了。

這兩個在C ++中是相同的,但是如果你使用typedef得到C和C ++之間兼容的代碼,它們在C中是不一樣的(因此可以在可能用於的頭文件中自由使用)無論是C還是C ++)。 這是我可以看到更喜歡它的唯一原因。

我發現了一個可能的答案在這里 :“那么這是培訓相關,其中,如果你使用C語言enum這是用戶定義的數據類型,你需要指定或結構enumstruct的關鍵字,而使用它。”

也許你的評論家是一個鐵桿C編碼員,他出於習慣而自動完成。

如果公司有標准,那可能只是為了保持一致性。 即使你從未在C中使用過,在任何地方以相同的方式做到這一點仍然會更好。

typedef在C ++中多余的
C中 ,如果你想定義枚舉類型的變量是必要的,如下所示: EEventID event; ,否則你必須指定它是一個枚舉: enum EEventID event;

你的評論家不會從他的C ++中知道他的C.

暫無
暫無

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

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