正文

C++/C代码审查表(三)2007-04-11 22:08:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lym51/24811.html

分享到:

重要

是否将正常值和错误标志混在一起返回?正常值应当用输出参数获得,而错误标志用return语句返回。

 

重要

在函数体的“入口处”,是否用assert对参数的有效性进行检查?

 

重要

使用滥用了assert 例如混淆非法情况与错误情况,后者是必然存在的并且是一定要作出处理的。

 

重要

return语句是否返回指向“栈内存”的“指针”或者“引用”?

 

 

是否使用const提高函数的健壮性?const可以强制保护函数的参数、返回值,甚至函数的定义体。“Use const whenever you need

 

 

……

 

内存管理

重要性

审查项

结论

重要

mallocnew申请内存之后,是否立即检查指针值是否为NULL?(防止使用指针值为NULL的内存)

 

重要

是否忘记为数组和动态内存赋初值?(防止将未被初始化的内存作为右值使用)

 

重要

数组或指针的下标是否越界?

 

重要

动态内存的申请与释放是否配对?(防止内存泄漏)

 

重要

是否有效地处理了“内存耗尽”问题?

 

重要

是否修改“指向常量的指针”的内容?

 

重要

是否出现野指针?例如

1)指针变量没有被初始化。

2)用freedelete释放了内存之后,忘记将指针设置为NULL

 

重要

是否将malloc/free new/delete 混淆使用?

 

重要

malloc语句是否正确无误?例如字节数是否正确?类型转换是否正确?

 

重要

在创建与释放动态对象数组时,new/delete的语句是否正确无误?

 

 

……

 

C++ 函数的高级特性

重要性

审查项

结论

 

重载函数是否有二义性?

 

重要

是否混淆了成员函数的重载、覆盖与隐藏?

 

 

运算符的重载是否符合制定的编程规范?

 

 

是否滥用内联函数?例如函数体内的代码比较长,函数体内出现循环。

 

阅读(2718) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册