【问题标题】:cppcheck: same expression on both sides maybe wrongcppcheck:双方的相同表达可能是错误的
【发布时间】:2013-05-22 03:39:57
【问题描述】:
#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 的错误或为什么这段代码是样式错误

【问题讨论】:

    标签: static-code-analysis cppcheck


    【解决方案1】:

    我是一名 Cppcheck 开发人员。

    我同意这是一个错误的警告。

    但是 Cppcheck 会预处理代码。因此,如果您确实想对实际问题发出警告,那么这种错误警告是不可避免的(条件在逻辑上是相同的)。

    也许这个检查应该由 --inconclusive 激活,因为使用宏时可能会出现错误警告。

    如果您可以忍受错误警告,那么我建议您这样做。如果您想解决此问题,请随时写一张票: http://sourceforge.net/apps/trac/cppcheck/

    【讨论】:

      猜你喜欢
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多