#ifdef TEST
#define INVALID_HANDLE_VALUE 0
#else
#include <windows.h>
#endif
int main()
{
HANDLE hf = 0;
if (hf==0 || hf==INVALID_HANDLE_VALUE)
{}
}
上面是我的测试代码,当我用cppcheck.exe(1.58)检查这段代码时,cppcheck会给我一个'样式'错误就像 这似乎是cppcheck认为hf == 0和hf == INVALID_HANDLE_VALUE是相同的表达式。 任何人都可以告诉我这是cppcheck的错误或为什么这段代码是样式错误
答案 0 :(得分:1)
我是Cppcheck开发人员。
我同意这是一个错误的警告。
然而,Cppcheck预处理代码。因此,如果您确实希望收到有关实际问题的警告,那么这种错误警告是不可避免的(条件在逻辑上是相同的)。
也许这个检查应该由--inconclusive激活,因为在使用宏时可能会出现错误警告。
如果你能接受错误警告,那么我建议你这样做。如果您想要修复此问题,请随时写一张票: http://sourceforge.net/apps/trac/cppcheck/