- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C/C++语言源代码性能缺陷类别与名称
为方便项目组开展源代码缺陷检测工作,以下给出按检测工具错误代码列表翻译得到的所有C/C++缺陷的类别和名称:
内存管理类
使用已释放的内存
重复释放内存
缓冲区溢出
不匹配的内存释放
释放非堆内存
释放未分配的内存
内存泄漏
资源泄漏
为指针分配的内存大小与类型不匹配
包含动态分配内存的成员变量的类没有定义赋值操作符或拷贝构造函数
指针未对齐
指针使用类
空指针解引用
增强的指针数据加密类
控制语句类
用于控制程序流程的条件表达式为常量
条件判别成立时相应分支无执行语句
switch语句为空或只包含default语句
不一致的case标签
switch语句缺少default分支
switch语句存在相同的case
switch语句分支break缺失
运算处理类
非法计算
boolean类型变量的加法或减法运算
有符号的一位位域
精度丢失
在条件表达式中使用赋值运算符
比较判断类
无效的无符号值比较
无效的函数地址检查
常量超出比较范围
Char类型变量与EOF常量比较
类型转换类
主机字节顺序与网络字节顺序的错误转换
在浮点数和非浮点数间进行类型转换
指针类型和非指针类型间进行类型转换
指向浮点数的指针和指向非浮点数的指针间进行类型转换
指针转换为一个可能不兼容其大小的类型
表达式转换为可能不同大小的类型
忽略采用typedef定义的抽象类型
可疑的数组到指针的转换
声明定义类
函数传递参数类型错误
参数被局部变量隐藏
宏定义参数时括号缺失
调用返回类
函数返回局部变量的地址
非void函数不返回值返回void值
冗余类
不可达代码
自我赋值
语句没有作用
变量赋值之后未被使用
空的case标签
无用的标签
COM字符串使用类
字符类型指针强制转换为BSTR类型
SysAllocString或SysAllocStringLen函数的第一个参数为BSTR类型
SysFreeString函数的参数不为BSTR类型
SysStringLen或SysStringByteLen函数的参数为字符类型的指针
SysReAllocString或SysReAllocStringLen函数的参数类型错误
对BSTR类型的变量进行地址运算
错误地比较BSTR类型变量的值
BSTR类型变量与字符类型指针进行相等或不等比较
在条件运算中使用CComBSTR类型的字符串作为条件
初始化类
使用未初始化的堆内存
未初始化的数组
未初始化的变量
类成员变量未初始化
初始化成员的顺序不正确
其他类
过时的implicit int
对非函数使用inline
在typedef中使用packed属性
结构体中使用位域
没有检查字节顺序就使用自定义的字节交换宏
在网络转换宏中使用不兼容的类型
函数参数赋值
布尔类型变量赋值错误
使用缺乏一致性定义的类型
内置数字类型的宏
不确定的存储结果
char数据类型未指定是否有符号
变量在同一个表达式中被使用两次且至少其中一次具有副作用
死锁
迭代时使用不正确的容器
使用无效的迭代器
引用end迭代器
删除有虚方法但无虚析构函数的对象
使用函数地址代替函数调用
缺失typedef名称
可疑的分号位置
类只定义了拷贝构造函数或只定义了赋值操作符
函数覆盖失败
函数参数值传递过大
异常对象值传递过大
无限递归
实参与形参不一致
参考工具:Klocwork9.2,C++Test v9.0
文档评论(0)