为什么在结构中包装单个枚举
Why package a single enum in a struct?
这是由离开公司的人写的。我看不出有任何理由这样做,很好奇是否有我缺少的东西。
enum thing_type_e
{
OPTION_A = 0,
OPTION_B,
OPTION_C,
OPTION_D
};
struct thing_type_data_s
{
enum_type_e mVariable;
};
我以为他可能会增加结构的更多信息,但是在看如何使用之后,我不这么认为。
禁止"他要在结构中添加更多",为什么在结构中包装单个枚举?我没有想到一些动力吗?
更新:
如评论中所要求的,他以这种方式使用了它:
void process_thing_type(thing_type_data_s* ParamVariable)
{
local_variable = ParamVariable->mVariable;
...
}
这最初是用GCC 3.3.5构建的。
可能要执行某种类型的安全性。老式的枚举是隐式转换为积分类型的,这并不总是可取的。除此之外,它们是毫无意义的。
c 11添加了范围枚举(或"类"枚举)来解决这两个问题。
这是一个示例:
void foo(int) {}
int main()
{
foo(OPTION_A); // OK
thing_type_data_s s = { OPTION_A };
foo(s); // Error
}
是否还有其他类型的成员类型的结构,但否则有所不同吗?他可能会以基本的方式使用struct thing_type_data_s
。但是谁知道,您将这个问题标记为C和C 。我至少在C中很有意义。
相关文章:
- 不带大括号的枚举形式
- 枚举环境变量的惯用C++14/C++17方法
- 类似枚举的计算常量
- 如何正确实现和访问运算符的各种自定义枚举器
- 错误:从"int"到枚举c++的转换无效
- C++中构造函数中的枚举
- 访问在 C++ 结构中声明的枚举变量
- 枚举类'classname'的多重定义
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- typedef 枚举和枚举类有什么区别?
- 为什么我的开关/机箱在使用枚举时默认?
- 标准::可选枚举的比较运算符
- C++两个源文件之间共享的枚举的静态实例
- 打印没有铸件的枚举可以在C++中吗?
- 枚举成员与静态 int 成员?
- C++:枚举:错误:应使用标识符而不是"}"
- 带有 c++ 的枚举(输入检查)
- 为什么在结构中包装单个枚举
- 构造构造函数采用单个枚举参数的临时对象时出错
- 检测单个枚举常量的类型