在C代码中捕捉愚蠢错误的任何工具?

Sri*_*nth 11 c lint findbugs

我有一个令人讨厌的错字,浪费了我的时间和我的同事的时间,它是这样的:

for (i = 0; i < blah; i++); // <- I had a semi-colon here, that's the bug!
{
  // Some awesome logic here
}
Run Code Online (Sandbox Code Playgroud)

首先,这是非常尴尬的,其次,我不应该重复这一点.我对C比较陌生.在Java中,我想我可以使用FindBugs来捕捉这些错误,我应该用什么工具来代码?皮棉?

aru*_*rul 15

是的,PC-Lint可能是最好的工具.


Mic*_*urr 7

除了Lykathea的PC-Lint建议之外,如果提高编译器的警告级别,您还可以获得更好(或至少更多)的诊断.像/W4或的东西-Wall

虽然我不确定您的特定问题是否会被捕获(即使启用了所有警告,MS VC似乎也没有标记它).我认为这是因为for当作为循环控制表达式的副作用完成工作时,循环变为空是不常见的习惯用法.