[英]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
這是用戶定義的數據類型,你需要指定或結構enum
或struct
的關鍵字,而使用它。”
也許你的評論家是一個鐵桿C編碼員,他出於習慣而自動完成。
如果公司有標准,那可能只是為了保持一致性。 即使你從未在C中使用過,在任何地方以相同的方式做到這一點仍然會更好。
typedef在C ++中是多余的 。
在C中 ,如果你想定義枚舉類型的變量是必要的,如下所示: EEventID event;
,否則你必須指定它是一個枚舉: enum EEventID event;
。
你的評論家不會從他的C ++中知道他的C.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.