Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
你能让PC Lint忽略某些特殊的枚举吗,比如';myenum_min';和';myenum_max';_C_Enums_Lint_Pc Lint - Fatal编程技术网

你能让PC Lint忽略某些特殊的枚举吗,比如';myenum_min';和';myenum_max';

你能让PC Lint忽略某些特殊的枚举吗,比如';myenum_min';和';myenum_max';,c,enums,lint,pc-lint,C,Enums,Lint,Pc Lint,因此,给定以下代码: 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

因此,给定以下代码:

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;

这可能吗?

PC Lint不提供特殊命令来抑制有关枚举值的消息,但它提供选项
-estring(#,string)
来抑制包含指定字符串的特定错误消息。这可用于抑制特定枚举值上的特定消息

对于您的示例,这应该是可行的:

//lint -estring(788, myenum_max)
补遗
选项
-estring(#,string)
已在PC Lint 9.00版中引入。

嘿,伙计-这很酷,就像一个通用的模式匹配工具-很好,谢谢你的支持