炒鸡实用的代码缺陷静态检查工具:cppcheck

目录

介绍

安装

使用

实操


介绍

        对于一些程序bug,经常是比较难发现的,特别是新手来说,光光编译器检查,往往是不够的,那么我们可以借助一些工具帮助我们,提高我们的代码质量,或者说减少bug,这里介绍一款非常实用的C/C++代码缺陷静态检查工具:cppcheck。不同于C/C++编译器及其它分析工具,Cppcheck只检查编译器检查不出来的bug,不检查语法错误。

        cppcheck 是一个静态代码检查工具,支持c, c++ 代码;作为编译器的一种补充检查,cppcheck对产品的源代码执行严格的逻辑检查。 执行的检查包括:

        1. 自动变量检查

        2. 数组的边界检查

        3. class类检查

        4. 过期的函数,废弃函数调用检查

        5. 异常内存使用,释放检查

        6. 内存泄漏检查,主要是通过内存引用指针

        7. 操作系统资源释放检查,中断,文件描述符

        8. 异常STL 函数使用检查

        9. 代码格式错误,以及性能因素检查

        这里我以linux环境为例,介绍一下cppcheck的安装及使用。

安装

        比较简单,直接apt-get install cppcheck就可以辣。输入cppcheck --version看到版本就OK了。 

使用

        输入cppcheck回车,可以看到它的一些使用介绍

        

        最后还有例子,可以好好看看。

实操

        这里我介绍一下我比较常用的操作,直接上图:

         1.cppcheck --enable=all --force ./hello.c检查hello.c单个文件,“--enable=all”表示使能所有检查,“ --force”是多个宏定义时全部检查;可以看到检查结果报告了三个问题:

        (1).第6行错误,变量data[101]越界了;

         (2).风格问题,说data赋值但没有使用;

        (3).information,提示头文件没找到,一般不用处理。

        2.cppcheck --enable=all --force ./ 检查./路径下的所有文件hello.c和test.c。

        3.我进行gcc编译,发现hello.c第7行变量t没有定义。

        所以,我们实用cppcheck的时候,一般先编译通过后,再进行cppcheck检查。

        很多时候,我们只关注错误和警告,也可以像这样子操作cppcheck --enable=warning --force ./hello.c,下面是我修改后的检查:

 

 希望对你有帮助。。。。。。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钓鱼lalala

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值