我目前有一个枚举的代码,其中一个值被设置,其余的由编译器使用前一个值+1设置,或者我希望如此.
此功能是否依赖于枚举类型编译器,下面的示例如下所示.
enum FUNC_ERROR_CODE
{
FUNC_SUCCESS,
FUNC_ERROR_1 = 24,
FUNC_ERROR_2,
FUNC_ERROR_3
}
Run Code Online (Sandbox Code Playgroud)
假设FUNC_ERROR_2的值为25且FUNC_ERROR_3的值为26,是否安全,无论使用何种编译器.
我正在对此进行编码,因为函数可以返回一个整数值,0总是成功,任何其他值都可以表示失败.
可以安全地假设:
枚举器列表中的标识符声明为常量,并且可以出现在需要常量的位置.带=的枚举器定义为关联的枚举器提供由constant-expression指示的值.常量表达式应为整数或枚举类型.如果第一个枚举器没有初始化器,则相应常量的值为零.没有初始值设定项的枚举器定义为枚举数提供了通过将前一个枚举数的值增加1而获得的值.
但是如果你有一个类型安全的枚举:使用它!不要依赖于转换为整数/从整数转换.