文档章节

Cppcheck简单测评

 左笔一支
发布于 2014/01/11 14:03
字数 184
阅读 318
收藏 2

测评代码如下:

#include <cstdio>
#include <string>
int main(void)
{
 // 多了或者少了格式化参数
 ::printf("%d%d%d\n", int(1), int(2));
 ::printf("%d%d%d\n", int(1), int(2), int(3), int(4));
 // 格式化类型不正确
 ::printf("%s\n", std::string("test"));
 ::printf("%d\n", std::string("test"));
 ::printf("%d\n", float(12.34));
 ::printf("%f\n", int(1));
 // 越界
 int a[10] = {0};
 a[10] = 10;
 int b[10] = {0};
 for (int i; i < 11; ++i)
 {
  b[i] = 10;
 }
 for (int i = 0; i < 11; ++i)
 {
  b[i] = 10;
 }
 // 字符串比较的典型错误
 bool bl;
 bl = ("123" == std::string("123").c_str()); // 此处错误没有找到
 if (bl)
 {
 }
 // Cppcheck的一个bug
 std::string str("123");
 ::printf("%d", ("123"==str ? int(1) : int(2))); // 此处误报
 ::system("pause");
 return 0;
}

结果图

有误报,有的错误没找到,但瑕不掩瑜。

© 著作权归作者所有

共有 人打赏支持
粉丝 3
博文 5
码字总数 920
作品 0
佛山
程序员
私信 提问
加载中

评论(1)

左笔一支
我用的是VS2010,格式化错误原来用MingW都能发现,所以不能怪Cppcheck发现不了。
CppCheck 和 SourceMonitor 在 Source Insight、Qt Creator、VS 2013 上的安装配置和使用

一、引言 软件在开发过程中如何保证代码质量?仅凭个人能力去检视判定,效率太低,而且和个人能力有很大关系,如果能有一些小工具来协助,岂不是如虎添翼? 本文就是介绍CppCheck和SourceMon...

容我三思兮
2018/07/14
0
0
Qt Creator Bug 检测、定位插件--Qtc_CppCheck

Qtc_CppCheck是一个Qt Creator IDE的插件,通过调用CppCheck程序检查代码文件,将检查结果直观地显示在IDE中,实现随时检查、快速定位和修改Bug的功能,目前只检测C++。(需要安装CppCheck程...

zlqzlq
2017/05/26
121
0
cppcheck 1.60.1 发布,C/C++代码分析工具

cppcheck 1.60.1 修复了编译模式的一些 bug。 cppcheck是静态的C/C++ 代码分析工具,用以检查内存泄漏,错配的内存分配和释放,缓冲区溢出,以及更多的问题。...

oschina
2013/07/14
2.4K
1
KDevelop 5.1.0 正式发布,带来大量新特性

KDevelop 5.1.0 发布了,这次的更新带来了大量的新特性。KDevelop 是 KDE 的集成开发环境(IDE)。已发布的 5.1 版本支持 LLDB,分析器运行模式,初始支持OpenCL 语言,改进的 Python 语言支...

局长
2017/03/22
2.4K
7
cppcheck 1.57 发布,静态 C/C++ 代码分析

cppcheck是静态的C/C++ 代码分析工具,用以检查内存泄漏,错配的内存分配和释放,缓冲区溢出,以及更多的问题。 cppcheck 1.57 改进记录: Support for Java and C# code has been removed....

oschina
2012/12/25
986
0

没有更多内容

加载失败,请刷新页面

加载更多

携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
30分钟前
0
0
远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
44分钟前
6
0
聊聊flink的AsyncWaitOperator

序 本文主要研究一下flink的AsyncWaitOperator AsyncWaitOperator flink-streaming-java_2.11-1.7.0-sources.jar!/org/apache/flink/streaming/api/operators/async/AsyncWaitOperator.java ......

go4it
今天
5
0
Java并发编程基础(四)

ThreadGroup 在主线程创建得线程,如果没有给他指定线程组,那么创建的线程,默认和主线程同一个线程组。线程组可以底下可以是线程,也可以实线程组。 构建线程组的方法: private ThreadGr...

chendom
今天
7
0
Scala学习(一)

学习Spark之前需要学习Scala。 参考学习的书籍:快学Scala

柠檬果过
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部