对于定义样式的示例,枚举和#define似乎能够做同样的事情.理解#define是编译器预处理器的宏替换.有什么情况比另一个更受欢迎吗?
typedef enum {
SelectionStyleNone,
SelectionStyleBlue,
SelectionStyleRed
} SelectionStyle;
Run Code Online (Sandbox Code Playgroud)
VS
#define SELECTION_STYLE_NONE 0
#define SELECTION_STYLE_BLUE 1
#define SELECTION_STYLE_RED 2
Run Code Online (Sandbox Code Playgroud)
如果你想要类型安全,枚举是最好的。它们还导出为符号,因此某些调试器可以内联显示它们,但不能用于定义。
当然,枚举的主要问题是它们只能包含整数。对于字符串、浮点数等...您可能最好使用 const 或定义。
| 归档时间: |
|
| 查看次数: |
1335 次 |
| 最近记录: |