所以给出以下代码:
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语句的此规则,但这意味着:
或者我可以完全删除规则" // -e788",但是:
我真正想要的是,但不确定如何做(或者如果存在)是忽略给定枚举的规则:
typedef enum
{
myenum_a = 1,
myenum_b = 2,
myenum_c = 3,
myenum_max = 4 // !eXXX - ignore this enum
}myenum_t;
这可能吗?
答案 0 :(得分:1)
PC-Lint没有提供特殊命令来禁止有关枚举值的消息, BUT 它提供选项-estring(#, string)
来禁止包含特定错误消息指定的字符串。这可用于抑制特定枚举值上的特定消息。
对于您的示例,这应该有效:
//lint -estring(788, myenum_max)
PC-Lint版本9.00已引入选项-estring(#, string)
。