我想为错误处理创建负值的枚举列表,因此<;0是错误,并且>;=0对于某些函数是有效的:
int f() {
if (someerror())
return ERR_TYPE_2;
else
return 0;
}
main() {
if (f() < 0) blow_up();
else profit();
}
我知道,默认情况下,C(enum
)中的枚举从0开始计数,I could对它们的赋值方式如下:
enum {
ERR_TYPE_1 = -1,
ERR_TYPE_2 = -2,
ERR_TYPE_3 = -3
}
或者,通过从枚举永远不会达到的任意负值开始,"自动"获得任意的负枚举值:
enum {
ERR_TYPE_1 = -100,
ERR_TYPE_2 // -99
ERR_TYPE_3 // -98 ...
}
Question:有没有办法告诉enum
从-1
开始计算负数,而不是使用上面的方法?
针对 comments 者的更新:
我不反对硬编码的错误值,事实上这就是我通常做的(作为定义或枚举).
这个问题实际上是关于Cofficially在一些未知的语法糖中是否支持负枚举,这些语法糖在一些搜索-fu之后是不会出现的.