Enums 从0x0007开始的枚举值的含义
我正在浏览我正在使用的库的头文件(我没有实现源文件),我注意到有一组枚举是这样进行的(简化):Enums 从0x0007开始的枚举值的含义,enums,Enums,我正在浏览我正在使用的库的头文件(我没有实现源文件),我注意到有一组枚举是这样进行的(简化): 我很熟悉看到1,2,4,8。。。使用枚举作为位标志的进程,但这是7,10,11。。。有什么标准图案吗?我知道这些值不一定有多大意义,但这似乎有点奇怪,因为大多数值都是连续的。看到缺少数字的级数并不罕见。它们可以由库内部使用,也可以由库与之接口的其他外部组件使用,或者保留用于将来的开发 为了安全起见,只使用定义的值。您的回答让我想到:使用7的特定枚举作为有符号64位整数(根据随附的注释)。我确信有6对比
我很熟悉看到1,2,4,8。。。使用枚举作为位标志的进程,但这是7,10,11。。。有什么标准图案吗?我知道这些值不一定有多大意义,但这似乎有点奇怪,因为大多数值都是连续的。看到缺少数字的级数并不罕见。它们可以由库内部使用,也可以由库与之接口的其他外部组件使用,或者保留用于将来的开发
为了安全起见,只使用定义的值。您的回答让我想到:使用7的特定枚举作为有符号64位整数(根据随附的注释)。我确信有6对比它小的整数类型(8,16,32但有符号和无符号),然后可能是一个无符号64位,然后是一对128位,然后是双精度等等,这不是巧合。这些类型作为参数传递给dll函数。未来证明?遗留代码?无论哪种方式,现在的模式似乎都没有那么随意了!
enum Type
{
Type1 = 0x0007,
Type2 = 0x000A,
Type3 = 0x000B,
Type4 = 0x000C,
Type5 = 0x000D,
Type6 = 0x000E,
Type7 = 0x000F,
Type8 = 0x0010,
};