2

我不知道这是否是提出问题的正确地方,但无论如何我都会这样做。

我对 Lint 有疑问,我目前正在从另一个项目中迁移一些代码,并且有许多结构成员当前未在新项目中使用。当然,因为这个 Lint 抱怨:

信息 768:未引用全局结构成员 'foo'(第 89 行,文件 /path/header.h)

我现在想抑制这些消息(因为它们破坏了我们的构建),但我不想在全局范围内这样做,因为与迁移并行,正在实现代码并且我们希望防止不使用结构成员。所以我可以选择使用全局配置文件来抑制这些成员的消息(即 -esym(768, foo))。

但是我有这个问题:

typedef struct {
  u16 foo;
  u16 bar;
} t_foobar;

typedef struct {
  u16 foo;
  u16 bar;
  u16 temp;
} t_tempfoobar;

foob​​ar::foo 和 foobar::bar 目前没有被使用,所以我想为整个 t_foobar 结构做一个 lint 异常,但是如果我使用 -esym(foo) 我也会为 t_tempfoobar::foo 做一个例外不想。我试过 -esym(768, t_foobar*) 但没有用。我也不能做内联异常,比如:

// lint -e768
typedef struct {
  u16 foo;
  u16 bar;
} t_foobar;
//lint -restore

这没用。它工作的唯一方法是如果我在 Lint 的配置文件中执行 -e768。

您对如何完成此任务有任何建议吗?不必为每个成员写一个例外?这也有一个问题,即其他同名结构的成员也被排除在外。

谢谢你的帮助

4

1 回答 1

1

参考Gimpel 常见问题解答

消息抑制中的一些常见错误是:

  1. 您在源代码中使用了 lint 注释,但它们没有效果。确保包含“lint”这个词,前面没有空格。

    //lint -e620          - OK 
    //-e620          - won't work
    //  lint -e620    - won't work
    

问题中的代码片段显示了行前的“空格”,这在这里似乎是一个问题。

于 2016-07-04T17:48:29.297 回答