c++ - 声明 "const typedef enum"在 C++ 中有效吗?

标签 c++ enums constants typedef

我认为枚举是静态的,const enum 有什么意义? ?

例如:

const typedef enum
{
    NORMAL_FUN = 1,
    GREAT_FUN = 2,
    TERRIBLE_FUN = 3,
} Annoying;

我的头上掉了一个旧程序,我被迫使用它(来自设备制造商),而且我不断遇到用 const typedef enum 定义的枚举。 .

现在,我已经习惯了 C#,所以我并不完全理解所有的 C++ 技巧,但这个案例看起来很简单。

从程序的编码可以看出,类型为 Annoying 的变量随时随地都应该改变。

它们并不意味着是恒定的。长话短说,编译器不喜欢它。

这个样本是在 2010 年之前的某个时候写回的,所以这可能是某种版本差异,但是做了什么/做了什么 const typedef enum甚至是什么意思?

最佳答案

这使得类型别名 烦人 常量,所以所有用该类型别名声明的变量都是常量:

Annoying a = NORMAL_FUN;
a = GREAT_FUN;  // Failure, trying to change a constant variable

关于c++ - 声明 "const typedef enum"在 C++ 中有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39512095/

相关文章:

c++ - std::unordered_map::merge() 的安全性

c++ - 简单的 rust 通用/模板添加功能

C++ Bitflaged枚举到字符串

string - `const` 字符串参数(线程)安全吗

c++ - 如何防止需要复制传递给 avr-gcc C++ 构造函数的字符串?

c++ - 在 hlsl 着色器中设置全局参数的正确方法是什么?

python - 如何使用 EnumMeta Python 3.6 获取将成员作为枚举的新枚举

swift - 快速枚举中关联值和原始值之间的区别

python - 为什么 Python 中没有 'const'?

c++ - STL 迭代器和 'const'