c++ - 为什么我应该在 C++ 中使用 typedef 声明一个枚举?

标签 c++ enums typedef

我的代码看起来像这样:

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

经过审核并更改为

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

两者有什么区别?为什么要做出改变?当我看着 this question ,唯一提到 typedef 的地方被否决了。

最佳答案

这两者在 C++ 中是相同的,但在 C 中它们是不同的——在 C 中,如果你使用 typedef,你会得到在 C 和 C++ 之间兼容的代码(因此可以在头文件中自由使用,可能用于 C 或 C++)。这是我能看到的偏爱它的唯一原因。

关于c++ - 为什么我应该在 C++ 中使用 typedef 声明一个枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3817914/

相关文章:

c++ - 极小极大递归究竟是如何工作的?

c++ - 检查数组中的总和是否可能

c++ - 为什么我在 DLL 中收到 "Unable to find an entry point named ' SquareRoot' 消息?

java - 如何在没有 FOLLOW_LINKS 选项的情况下调用 Java nio Files.find?

c# - 将 Null 转换为 Nullable 枚举(通用)

c - 具有前向声明副作用的 typedef?

C++ - 使用与包装数据相同的语法构造包装类

java - 在 Java 中的枚举中使用反向值

c - 使用 typedef 和结构时出错

c++ - 通过更改祖先中的 typedef 来覆盖方法 - 可能吗?