c++ - C++ 中的 Typedef 枚举

标签 c++ variables enums typedef member

我有一个这样的typedef

typedef enum
{
ONE = 01,
TWO = 02,
THREE = 03
}number_t;

我刚刚定义了一个成员变量为 number_t m_number;

所以如果我在任何其他函数中返回 m_number,将返回一个、两个或三个?

最佳答案

由于您没有初始化变量,它有一个不确定的值

因此它可以是映射到 ONETWOTHREE 或任何其他值的整数之一。

enum 对象具有未映射到枚举数的值本身并没有错,因此这不是大问题。但是,您不能合法地评估不确定的值,因此在为它赋值之前,您将无法安全地观察该对象。

顺便说一句,当你到达 08 时,你会感到震惊,如果你跳到 010 则更是如此。不要在整数文字上使用前导零,除非你真的打算用八进制计数。

这是你应该做的:

enum number_t
{
   ONE   = 1,
   TWO   = 2,
   THREE = 3
};

number_t number = ONE;

关于c++ - C++ 中的 Typedef 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43228573/

相关文章:

c++ - Qt 使用自定义图标创建快捷方式

c++ - 序列化结构的 STL 映射

c++ - char 初始化枚举的基础类型应该是什么?

python - 创建抽象枚举类

java - Java 中 int 转换为 enum

c++ - 排序函数调用后数组没有改变

c++ - 如何在 CMake 生成的解决方案中使用相对路径打开源代码中的文件

ios - 从一个函数访问另一个 Swift 函数的变量

javascript - 使用 == 运算符检查变量是否为 0/false/null 等以外的值?

linux - 将文件名传递给变量时出现命令未找到错误