我的代码是这样的:为什么要在C++中使用typedef声明枚举?
enum EEventID {
eEvent1,
eEvent2,
...
eEventN };
这得到了审查,并改为
typedef enum {
eEvent1,
eEvent2,
...
eEventN } EEventID;
两者有什么区别?为什么要改变?当我看着this question时,唯一提及的typedefs被降低了。
感谢您的洗脱。我开始担心是否还有另一个关于C++的角色,我认为我知道但完全不知道(参见:Boost中的家伙很容易做到的模板体操) – mmr 2010-09-29 01:00:36
“这两者在C++中是相同的” - 值得指出在某些实现中,调试信息可能会因为typedef实际上是匿名或随机命名的枚举而有所不同,所以调试信息可以将其记录为“EEventID”。这导致了一些人甚至更丑陋的'typedef enum Idn1 {...} Idn2;',其中一个通常通过向另一个添加前缀或后缀来形成:-( - 它并不完全解决问题,但提供了一些更可追溯的IDN。 – 2010-09-29 01:14:37