Cppcheck简单测评

测评代码如下:

1#include <cstdio> 2#include <string> 3int main(void) 4{ 5 // 多了或者少了格式化参数 6 ::printf("%d%d%d\n", int(1), int(2)); 7 ::printf("%d%d%d\n", int(1), int(2), int(3), int(4)); 8 // 格式化类型不正确 9 ::printf("%s\n", std::string("test")); 10 ::printf("%d\n", std::string("test")); 11 ::printf("%d\n", float(12.34)); 12 ::printf("%f\n", int(1)); 13 // 越界 14 int a[10] = {0}; 15 a[10] = 10; 16 int b[10] = {0}; 17 for (int i; i < 11; ++i) 18 { 19  b[i] = 10; 20 } 21 for (int i = 0; i < 11; ++i) 22 { 23  b[i] = 10; 24 } 25 // 字符串比较的典型错误 26 bool bl; 27 bl = ("123" == std::string("123").c_str()); // 此处错误没有找到 28 if (bl) 29 { 30 } 31 // Cppcheck的一个bug 32 std::string str("123"); 33 ::printf("%d", ("123"==str ? int(1) : int(2))); // 此处误报 34 ::system("pause"); 35 return 0; 36}

结果图

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

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

计算(变量)

include<stdio.hintmain()intprice0;printf("请输入金额(元)");scanf("%d",&price);intchange100price;printf("找您%d元\n",change);return0;上述程序编译执行的结果如下:$cp

C语言基础习题50例(六)26-30

习题26利用递归方法求5。实现思路:使用递归。代码如下:cinclude<stdio.hintmain(){intrec(intn);intresultrec(5);printf("5%d\n",result);return0;}intrec(intn){if(n1||n

AndroidStudio封装SDK的那些事

<divclass"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,2.55,5z"id"raphael