所以给出以下代码:
typedef enum
{
myenum_a = 1,
myenum_b = 2,
myenum_c = 3,
myenum_max = 4
}myenum_t;
然后稍后
myenum_t test;
switch (test)
{
case myenum_a:
{
// do stuff
}
case myenum_b:
{
// do stuff
}
case myenum_c:
default:
{
// do stuff
}
}
当我对此运行 lint 时,我收到错误 788:“'myenum_max' 未在默认开关中使用”。
我知道我可以使用 "// !e788" 来忽略这个特定 switch 语句的规则,但这意味着:
- 对于缺少的潜在有效枚举,此规则将被忽略。
- 我必须在添加这种 switch 语句的任何地方添加这一行。
或者我可以使用“// -e788”完全删除规则,但是:
- 再次,对于所有类型的枚举的有效缺失枚举,此规则将被忽略 - 所以更糟。
我真正想要的,但不确定如何去做(或者它是否存在)是忽略给定枚举的规则,例如:
typedef enum
{
myenum_a = 1,
myenum_b = 2,
myenum_c = 3,
myenum_max = 4 // !eXXX - ignore this enum
}myenum_t;
那可能吗?