VScode如何用cppcheckc检查c/c++代码?

已更新系列文章包括104、61850、modbus 、储能系统、网络基础等,欢迎关注+星标。

图片

1 安装cpp-check-lint 插件

图片

cpp-check-lint基于cppcheckcpplint的C++代码检查工具,他将cppcheckcpplintVSCode完美的集成在一起。对cppcheckcpplint有依赖,其中cppcheck需要自己另外手动安装,并将可执行文件的路径配置到插件的cpp-check-lint.cppcheck.--executable

1.1. cpplint

cpplint是一个用于检查C++代码规范的工具,它可以帮助我们自动化地检查代码,发现潜在的编码问题,确保代码风格的一致性和规范性,提高代码质量。cpplint的代码检查会遵循 Google C++ Style Guidecpplint工具本身是有Python实现的,可以通过pip install来安装。

cpplint侧重于C++代码规范和风格的检查。

1.2. cppcheck

cppcheck是一个 C/C++ 静态代码分析工具,检测编译器通常无法检测到的错误类型,目标是没有误报。

cpplint侧重于C++代码的错误、潜在安全问题、潜在性能问题的检查。

检查范围包括:

  • 自动变量检查;

  • 数组的边界检查;

  • class类检查;

  • 过期的函数,废弃函数调用检查;

  • 异常内存使用,释放检查;

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

  • 操作系统资源释放检查,中断,文件描述符等;

  • 异常STL 函数使用检查;

  • 代码格式错误,以及性能因素检查。

2 配置

组合键ctrl+shift+p打开命令,输入settings搜索,打开用户setting.json文件,如下图所示:

图片

关键配置说明如下:

配置项

说明

cpp-check-lint.--enable

true

是否启用cpp-check-lint插件

cpp-check-lint.cppcheck.--enable

true

是否启用cppcheck检查

cpp-check-lint.cppcheck.--executable

"cppcheck"

cppcheck可执行文件路径(若未配置Path需填绝对路径)

cpp-check-lint.cppcheck.--language=

"c++"

检查语言(可选:c、c++)

cpp-check-lint.cppcheck.--std_c++=

"c++11"

使用的C++标准

cpp-check-lint.cppcheck.--std_c=

"c11"

使用的C语言标准

cpp-check-lint.cppcheck.--inline-suppr

false

是否支持内联函数

cpp-check-lint.cppcheck.--onsave

true

是否在文件保存时立即检查

cpp-check-lint.cppcheck.--quick_fix

false

是否开启快速修复功能

cpp-check-lint.cppcheck.--enable=

"all"

额外检查类型(可选:warning, style, performance, portability, information, unusedFunction, missingInclude, all)

cpp-check-lint.cpplint.--enable

true

是否启用cpplint检查

cpp-check-lint.cpplint.--executable

"cpplint"

cpplint可执行文件路径(若未配置Path需填绝对路径)

cpp-check-lint.cpplint.--linelength=

120

代码行长度限制

cpp-check-lint.cpplint.--onsave

true

是否在文件保存时立即检查

cpp-check-lint.cpplint.--quick_fix

true

是否开启快速修复功能

cpp-check-lint.cpplint.--extensions=

"hxx,h++,cxx,cc,hh,h,cpp,c,hpp,c++"

检查的文件后缀

cpp-check-lint.cpplint.--headers=

"hxx,h++,hh,h,hpp"

支持的头文件后缀

例如:

图片

3 项目中使用

任意项目文件右击->选择cppcheck-file,就可以检查当前文档(cppcheck-dir是检查当前目录下的文档)

图片

例如下面检测出了除0和数据越界问题

图片

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

keven-wang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值