【发布时间】:2018-04-23 07:09:21
【问题描述】:
我正在对以下代码运行 cppcheck
bool bsIsBigEndian( void )
{
return (((const int*)"\0\x1\x2\x3\x4\x5\x6\x7")[0] & 255) != 0;
}
使用下面的命令
cppcheck --template={file};{line};{severity};{message};{id} --enable=style,performance,portability file.cpp
输出
我已经尝试过 --platform 选项,但结果仍然相同。 我怎样才能摆脱无效字符?
【问题讨论】:
-
cppcheck 是一个旧工具,它在很多事情上都失败了 - 跳过那些错误或警告
-
我不明白你从 cppcheck 得到什么样的输出。您应该得到一个定义明确的输出,其中包含与检查相关的统计信息。你能发布完整的输出吗?
-
好像是
[test.cpp:3]: (style) Condition '(((const int*)"")[0]&255)!=0' is always false。似乎是一个 cppcheck 错误,但不会使错误消息无法使用。我的意思是,它打印了不可打印的字符,但这并不重要,因为它还提供了行号之类的上下文。 -
@RannLifshitz:添加了输出图像
-
@xfix:您对消息的琐碎性质是正确的,因为我们已经有了行号,但是我在代码中进一步使用了错误消息,并且由于无效字符而给我错误。跨度>