我不知道这是否是提出问题的正确位置,但无论如何我都会这样做。
我遇到了Lint的问题,我目前正在从另一个项目中迁移一些代码,并且有许多结构成员当前未在新项目中使用。当然因为这个Lint抱怨:
Info 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;
目前没有使用foobar :: 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。
你对如何做到这一点有什么建议吗?无需为每个成员写一个例外?这也有一个问题,即同名的其他结构的成员也被排除在外。
感谢您的帮助
答案 0 :(得分:1)
消息抑制中的一些常见错误是:
您在源代码中使用了lint注释,但它们没有任何效果。确保包含“lint”一词,前面没有空格。
//lint -e620 - OK
//-e620 - won't work
// lint -e620 - won't work
问题中的代码段显示了行前的“空格”,这似乎是一个问题。