我的代码看起来像这样:
enum EEventID {
eEvent1,
eEvent2,
...
eEventN };
这已经过审核并更改为
typedef enum {
eEvent1,
eEvent2,
...
eEventN } EEventID;
两者有什么区别?为什么要做出改变?当我查看this question时,唯一提到的typedef被低估了。
答案 0 :(得分:11)
这两个在C ++中是相同的,但它们在C中是不一样的 - 如果你使用typedef得到C和C ++兼容的代码(因此可以在头文件中自由使用)用于C或C ++)。这是我可以看到更喜欢它的唯一原因。
答案 1 :(得分:2)
我找到了一个可能的答案here:“好吧它与C语言有关,如果你使用enum
或结构是用户定义的数据类型,你需要指定{{1使用它时使用{}}或enum
关键字。“
也许你的评论家是一个铁杆C编码员,而且他是出于习惯而自动完成的。
答案 2 :(得分:2)
如果公司有标准,那可能只是为了保持一致性。即使你从未在C中使用过,所以在任何地方都可以这样做。
答案 3 :(得分:2)
C ++ 中的typedef 多余。
在 C 中,如果您想要定义枚举类型的变量,则必须如此:EEventID event;
,否则您必须指定它是枚举:enum EEventID event;
。
答案 4 :(得分:0)
你的评论员不会从他的C ++中知道他的C.