Windows下 Cppcheck 的使用教程

2023-11-12

1、Cppcheck是什么?

CppCheck是一个C/C++代码缺陷静态检查工具。不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误。所谓静态代码检查就是使用一个工具检查我们写的代码是否安全和健壮,是否有隐藏的问题。

CppCheck下载地址:Cppcheck - A tool for static C/C++ code analysis

2、Cppcheck的检查信息

error:代码中的错误项,包括内存泄漏等;
warning:为了避免产生bug而提供的编程改进意见;
style:编码风格,提示你哪些函数没有使用、哪些为多余代码等;
portability:提示跨平台时容易出现的问题;
performance:该部分代码可以优化;
information:其他信息,可以忽略;

3、怎么使用?

3.1、直接使用

在工具栏的“Analyze”中,可以选择要分析的文件目录,或者直接选择需要分析的文件。

 

3.2、结合VS使用

在Visual Studio菜单栏"工具"→"外部工具",点击"添加",内容如下:

标题:Cppcheck
命令:D:\Program Files\Cppcheck\cppcheck.exe
参数:--enable=all--template=vs $(SolutionDir)
勾选"使用输出窗口"

使用时(检查代码时),点击"工具"→"Cppcheck"即可,如下图所示:

测试代码:

#include <stdio.h>

int main() {
    double num1, num2, result;
    char op;

    printf("请输入两个数字: ");
    scanf("%lf %lf", &num1, &num2);

    printf("请输入运算符 (+, -, *, /): ");
    scanf(" %c", &op);

    switch(op) {
        case '+':
            result = num1 + num2;
            break;

        case '-':
            result = num1 - num2;
            break;

        case '*':
            result = num1 * num2;
            break;

        case '/':
            result = num1 / num2;
            break;

        default:
            printf("错误的运算符");
            return 1;
    }

    printf("%.2lf %c %.2lf = %.2lf", num1, op, num2, result);

    // Vulnerability added: buffer overflow
    char buffer[10];
    printf("\nEnter your name: ");
    gets(buffer);
    printf("Hello, %s!\n", buffer);

    return 0;
}

Cppcheck检测输出信息:

 截图与代码部分做部分改动,如看原文,请点击原文链接:

Windows下 Cppcheck 的使用教程_hellokandy的博客-CSDN博客

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows下 Cppcheck 的使用教程 的相关文章

  • arima 公式_小白快速上手数据分析1

    ARIMA时间序列分析 作用 ARIMA时间序列分析通常用于对单列具有时间序列的数据进行预测 例如销售量预测 股票收盘价预测等等 输入 单列数据序列的数据 例如每个月销售额 每天股票的价格 通常数据量为15 50 条 输出 对未来5 15

随机推荐

  • python3 asyncio 爬虫_爬虫高性能asyncio+ahttpio

    async实现协程 异步编程 我们都知道 现在的服务器开发对于IO调度的优先级控制权已经不再依靠系统 都希望采用协程的方式实现高效的并发任务 如js lua等在异步协程方面都做的很强大 python在3 4版本也加入了协程的概念 并在3 5
  • centos8 免登陆 免密码 多用户命令行 启动 ,以及 界面免密

    文章目录 修改 启动 service 临时切换 运行模式 永久 切换 运行模式 由于界面 不同 os 实现 不一样 所以 方法 估计 也都 不太通用 博主 还是 建议 大家 学习 linux 使用 命令行 进行学习 centos8 界面免密
  • 没什么用的代码-批量提取主目录下所有文件夹中pdf里面的图片

    一 提前安装 pip install pymupdf 二 实现的功能 读取一个文件夹及所有子文件夹中的pdf中的图片 判断图片存储条件 存储图片 三 代码 批量提取pdf文件中的图片 author Administrator import
  • Linux基础知识:认识一下内存

    1 什么是内存泄漏 对内存来说 如果之分配内存给程序 而程序使用完不进行释放 就会造成内存泄漏 甚至耗尽系统内存 需要调用free 或unmap 来释放这些内存 2 内存紧张 系统的处理机制 2 1 回收缓存 比如使用 LRU Least
  • 链表和数组的归并排序和快速排序

    链表的归并排序和快速排序 归并排序 Definition for ListNode public class ListNode int val ListNode next ListNode int x val x next null pub
  • 【Arthas】Arthas 导出堆栈信息

    1 概述 转载 Arthas 导出堆栈信息 2 开篇 arthas提供heapdump命令导出栈信息 类似jmap命令的heap dump功能 3 原理介绍 通过通过HotSpotDiagnosticMXBean的dumpHeap来导出栈参
  • Java面试题及答案整理汇总(2023最新版)

    前言 面试前还是很有必要针对性的刷一些题 很多朋友的实战能力很强 但是理论比较薄弱 面试前不做准备是很吃亏的 这里整理了很多面试常考的一些面试题 希望能帮助到你面试前的复习并且找到一个好的工作 也节省你在网上搜索资料的时间来学习 第1 10
  • 最长字符串匹配算法(KMP算法)

    include stdafx h include
  • k-means聚类算法总结

    聚类概念 聚类分析是在对象数据中发现对象之间关系 一般来说 组内相似性越高 组间相似性越大 则聚类的效果越好 k means概念 k means是一种无监督学习 它会将相似的对象归到同一类中 k means聚类的优缺点 优点 容易实现 缺点
  • vue hover事件

    Vue 框架中的 hover 事件可以通过在 HTML 标签上使用 v on mouseover 或者简写为 mouseover 来监听 例如
  • kubernetes

    Deploy资源 spec progressDeadlineSeconds 600 等待多少秒才能确定Deployment进程是卡住的 replicas 1 revisionHistoryLimit 10 指定保留多少旧的 ReplicaS
  • 因果3-因果图

    上一章我们介绍了潜在结果模型 这一章我们尝试从图的角度理解因果 大家都有图论基础 我就不多赘述图的基本概念了 在因果图里我们主要研究DAG directed acyclic graph 有向无环图 如图1 图1 一个DAG例子 Bayesi
  • 22道高级 React 面试题

    Q1 什么是虚拟DOM 虚拟DOM VDOM 它是真实DOM的内存表示 一种编程概念 一种模式 它会和真实的DOM同步 比如通过ReactDOM这种库 这个同步的过程叫做调和 reconcilation 虚拟DOM更多是一种模式 不是一种特
  • 【JavaDebug(二)】之Mysql语法异常java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; chec

    本文章由公号 开发小鸽 发布 欢迎关注 老规矩 妹妹镇楼 一 异常 一 异常描述 java sql SQLSyntaxErrorException You have an error in your SQL syntax check the
  • 【binkw32.dll下载】binkw32.dll缺失怎么办

    binkw32 dll文件对一些电脑软件 电脑游戏等程序的正常运行起到关键性作用 对于弹出缺少此类文件的弹窗 用户们很多时候也摸不着头脑 程序明明上次都能正常运行 突然就弹出缺少binkw32 dll文件的提醒窗口 通过小编此次编辑的文章
  • 修改DIV滚动条样式

    滚动条样式 div webkit scrollbar 滚动条整体样式 width 5px 高宽分别对应横竖滚动条的尺寸 height 5px div webkit scrollbar thumb 滚动条里面小方块 border radius
  • 剖析ElasticSearch的评分计算过程

    剖析elasticsearch的评分计算过程 es搜索结果是怎样的排序的 准备测试数据 搜索 剖析参数含义 结论 es搜索结果是怎样的排序的 es的排序准则的相关度 根据搜索 关键词 计算关键词在一个文档中的得分 得分越高结果越靠前 那么计
  • github服务器停止响应,如何解决“git pull,致命:无法访问'https://github.com ... \':服务器空回复”...

    当我使用Git命令 git pull 更新我的存储库时 消息如下 致命 无法访问 来自服务器的空回复 如何解决 git pull 致命 无法访问 https github com 服务器空回复 而且我尝试使用GitHub的应用程序 但此提醒
  • QT5开发之 信号与槽机制

    文章目录 什么是信号与槽 信号与槽原理 如何实现信号与槽机制 实现方式 UI方式 代码方式 QT4 QObject类 connect和disconnect 连接函数 QT4 QT5使用 找到类与类的信号与槽函数 QT4 QT5使用 举例 总
  • Windows下 Cppcheck 的使用教程

    1 Cppcheck是什么 CppCheck是一个C C 代码缺陷静态检查工具 不同于C C 编译器及其它分析工具 CppCheck只检查编译器检查不出来的bug 不检查语法错误 所谓静态代码检查就是使用一个工具检查我们写的代码是否安全和健