简介

cppcheck是一个C/C++的动态代码查看工具。它不仅能够查看代码中的语法错误,还能够查看出编译器查看不进去的缺点,从而辅助晋升代码品质。
cppcheck可能发现很多谬误,但不能发现所有的谬误。

简略阐明

首先应用如下命令装置:

sudo apt install cppcheck

cppcheck反对的检测性能如下:

  • 野指针。
  • 整型变量溢出。
  • 有效的移位操作数。
  • 有效的转换。
  • 有效应用STL库。
  • 内存透露检测。
  • 代码格局谬误以及性能起因查看。

如对文件进行代码查看,只须要如下操作即可:

cppcheck [filename]

如对目录中所有代码进行查看,只须要如下操作即可:

cppcheck [path]

默认状况下只显示错误信息,能够通过“--enable”命令来启动更多查看,可用命令如下:

--enable=error         #发现bug时提醒级别--enable=style         #编码格局问题,未应用的函数、多余的代码等--enable=portability   #关上移植性正告,在其它平台上可能呈现兼容性问题--enable=warning       #关上正告音讯--enable=performance   #关上性能音讯--enable=information   #关上信息音讯--enable=all           #关上所有音讯

应用示例:

# enable warning messagescppcheck --enable=warning file.c # enable performance messagescppcheck --enable=performance file.c # enable information messagescppcheck --enable=information file.c # For historical reasons, --enable=style enables warning, performance,# portability and style messages. These are all reported as "style" when# using the old xml format.cppcheck --enable=style file.c # enable warning and information messagescppcheck --enable=warning,information file.c # enable unusedFunction checking. This is not enabled by --enable=style# because it doesn't work well on libraries.cppcheck --enable=unusedFunction file.c # enable all messagescppcheck --enable=all

设置输入格局:

cppcheck --template=vs path (Visual Studio 兼容模式)
cppcheck --template=gcc path (Gcc兼容模式)
cppcheck --template={"{file},{line},{severity},{id},{message}"} (自定义模式)

应用代码示例

int main(){    char a[10];    a[10] = 0;    return 0;}

查看后果如下:

$ cppcheck demo1.cChecking demo1.c ...[demo1.c:4]: (error) Array 'a[10]' accessed at index 10, which is out of bounds.

cppcheck也可设置规定疏忽一些目录或谬误,以及依据配置文件查看函数参数,格式化输入等性能。可参考官网文档。

email: MingruiZhou@outlook.com