c.f*_*lou 13 c eclipse eclipse-cdt
我们在Eclipse中有一个使用CDT的项目.这是我们刚刚导入Eclipse的旧项目,我想确保我们开始使用静态代码分析来查找任何奇怪的东西.
问题是,有很多行触发了我们想要忽略的警告,其中主要是在switch语句中的漏洞.
我知道如何为lint做这个,但是对于CDT呢?是否有单行注释我可以放在线上?
示例:("案例结尾没有中断")
case enChA:
nChannel++;
// I want to ignore this fallthrough
case enChB:
nChannel++;
// And this one...
case enChC:
nChannel++;
// And this one...
case enChD:
nChannel++;
// do some more stuff...
break;
Run Code Online (Sandbox Code Playgroud)
gko*_*s90 26
你应该试试
//no break
Run Code Online (Sandbox Code Playgroud)
在下一个案例之前.
djf*_*djf 10
这些设置位于Window - > Preferences - > C/C++ - > Code Analysis下.您可以自定义设置.例如,如果您选择No break at the end of case
,则可以定义抑制警告的注释.默认情况下,这是"没有休息".因此巧合地将警告消息复制/粘贴到您案例中的评论中:
正如您所看到的,文本不必是完全匹配,它也不区分大小写.
请参阅有关未使用变量的后续问题:自定义时Unused variable in file scope
,可以定义应忽略的变量名称:
有两个神秘的预定义异常"@(#)"和"$ Id".不幸的是我找不到任何官方文档,所以我去查看源代码.看起来检查器只是测试变量名是否有
contains()
任何指定的异常.如果是,则警告被抑制.
在Eclipse CDT之外,有流行的虚空铸造技巧.如果编译器警告未使用的变量,则将其强制转换为void.此操作无效,因此它是安全的,但从编译器的角度来看,现在使用变量.我通常将它包装在一个宏中,以便清楚地表明我正在做的事情,例如
#define UNUSED(var) (void)(var)
void foobar()
{
int b; // not used.
UNUSED(b); // now it's used
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7237 次 |
最近记录: |