VScode使用之C语言静态检查

简介

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

  1. 自动变量检查
  2. 数组的边界检查
  3. class类检查
  4. 过期的函数,废弃函数调用检查
  5. 异常内存使用,释放检查
  6. 内存泄漏检查,主要是通过内存引用指针
  7. 操作系统资源释放检查,中断,文件描述符等
  8. 异常STL 函数使用检查
  9. 代码格式错误,以及性能因素检查

安装插件

扩展搜索安装cpp-check-lint
在这里插入图片描述

检查设置

	"cpp-check-lint.cpplint.--enable": false,  //google C++ 代码风格检查
    "cpp-check-lint.cppcheck.--language=": "c",  //使用c语言进行检查
    "cpp-check-lint.cppcheck.--inline-suppr": false,  //取消内联
    "cpp-check-lint.cppcheck.--onsave": true,  //在文件保存时立刻检查该文件
    "cpp-check-lint.cppcheck.--enable=": "style",  //输出信息等级,可选为all, warning, style, performance, portability, information, unusedFunction, missingInclide

cpp-check-lint.cpplint.--enable
如果需要使用cpplint选项,具体设置可以参考:代码风格审查工具Cpplint
cpp-check-lint.cppcheck
输出信息等级说明:
warning:为了预防bug防御性编程建议信息
style:编码格式问题(没有使用的函数、多余的代码等)
performance:建议优化该部分代码的性能
portability:移植性警告。该部分如果移植到其他平台上,可能出现兼容性问题
information:一些有趣的信息,可以忽略不看的。
unusedFunction:未使用的函数
missingInclide:缺少头文件

常见错误

 CWE-398 The scope of the variable 'xxx' can be reduced.cppcheck(style:variableScope)

变量的作用域可以缩小。报错的原因是可能有个局部变量可以进一步缩小作用域,可以放到更深的括号里

CWE-563 Unused variable: aacppcheck(style:unusedVariable)

变量被声明了但是从未被使用。报错的原因是可能有定义过但后来又删掉了的变量,属于多余的变量,可以删掉

CWE-401 Memory leak: xxx cppcheck(error:memleak)

变量内存泄漏

CWE-457 Memory is allocated but not initialized: xxx cppcheck(error:uninitdata)

成员变量没有被初始化

CWE-686 %d in format string (no. 1) requires 'int' but the argument type is 'signed int *'.cppcheck(warning:invalidPrintfArgType_sint)

打印类型不匹配

using C-style cast. Use reinterpret_cast<SHCP_PACKET *>(...) instead cpplint(warning:readability/casting)

原因校验使用了C++的检查方式,C++应该使用的其独有的四种强制类型转化方式更为安全,如果是C代码可以忽略

CWE-398 Local variable 'xxx' shadows outer argument cppcheck(style:shadowArgument)

局部变量与外部参数冲突,名字重了

扩展阅读

google c++风格规范:
Google C++ Style Guide
C++ 风格指南
其他静态检查工具:
静态代码检测pc-lint, visual lint, cpp-check(pclint、cppcheck、TscanCode)

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在VSCode中运行C语言,首先需要确保电脑中已经安装了gcc编译器。GCC是一个通过命令行编译C语言的工具。如果缺少GCC,可以自行查阅如何安装。安装过程相对简单。 接下来,可以按照以下步骤来运行C语言代码: 1. 在VSCode中创建一个新的C文件,可以使用".c"作为文件扩展名。 2. 在编辑器中编写C代码。 3. 确保保存了代码文件,以便后续编译和运行。 4. 打开终端(在VSCode中,可以通过按下Ctrl+`键来打开终端)。 5. 在终端中,使用gcc命令来编译C代码文件。例如,如果代码文件名为"example.c",则可以在终端中输入命令"gcc example.c -o example"来编译代码。 6. 如果编译成功,将会生成一个可执行文件。使用"./example"命令来运行可执行文件。 7. 运行结果将会在终端中显示出来。 需要注意的是,VSCode还有许多扩展和插件可以增强对C语言的开发环境,如C/C++插件等。这些插件可以提供语法高亮、调试功能等,进一步改善开发体验。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vscode运行C程序](https://blog.csdn.net/m0_59190913/article/details/123823359)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值