CPP静态代码检查工具有很多,具体可以在这个链接中找到:
https://link.zhihu.com/?target=https://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#C,_C
常用的我都列在了上图,比如cppcheck,
使用方式如图,它在Linux上安装比较方便:
sudo apt install cppcheck。
在Windows上,需要下载cppcheck的安装包:cppcheck.sourceforge.io/ ,也可以下载源码,注意安装成功后需要配置下它的环境变量。
也可以使用clang-tidy来做静态代码检测, 不同于cppcheck使用正则表达式进行静态代码分析,clang-tidy是基于语法分析树的静态代码检查工具,虽然它的速度比正则表达式慢一些,但是它检查的更准确、全面,而且不仅可以做静态检查,还可以做一些修复工作,自行添加一些自定义检查规则。
clang-tidy的使用可以看这篇文章:
如何写出优雅的C 代码
这里还重点推荐下cpplint:它可以检测代码是否符合Google的编码规范,会把不符合规范的地方都指出来。
使用方式如图,它的安装也很简单:
python3 -m pip install cpplint。
很多项目都会把cpplint集成到pipeline里,不符合编码规范的MR不允许被merge。
要具体了解可以看它们的文档:
cppcheck的文档:https://cppcheck.sourceforge.io/manual.pdf
cpplint源码:https://github.com/cpplint/cpplint
我在这个仓库里也塞了写关于代码检测方面的文章: