重要 |
是否将正常值和错误标志混在一起返回?正常值应当用输出参数获得,而错误标志用return语句返回。 |
|
重要 |
在函数体的“入口处”,是否用assert对参数的有效性进行检查? |
|
重要 |
使用滥用了assert? 例如混淆非法情况与错误情况,后者是必然存在的并且是一定要作出处理的。 |
|
重要 |
return语句是否返回指向“栈内存”的“指针”或者“引用”? |
|
|
是否使用const提高函数的健壮性?const可以强制保护函数的参数、返回值,甚至函数的定义体。“Use const whenever you need” |
|
|
…… |
|
内存管理 | ||
重要性 |
审查项 |
结论 |
重要 |
用malloc或new申请内存之后,是否立即检查指针值是否为NULL?(防止使用指针值为NULL的内存) |
|
重要 |
是否忘记为数组和动态内存赋初值?(防止将未被初始化的内存作为右值使用) |
|
重要 |
数组或指针的下标是否越界? |
|
重要 |
动态内存的申请与释放是否配对?(防止内存泄漏) |
|
重要 |
是否有效地处理了“内存耗尽”问题? |
|
重要 |
是否修改“指向常量的指针”的内容? |
|
重要 |
是否出现野指针?例如 (1)指针变量没有被初始化。 (2)用free或delete释放了内存之后,忘记将指针设置为NULL。 |
|
重要 |
是否将malloc/free 和 new/delete 混淆使用? |
|
重要 |
malloc语句是否正确无误?例如字节数是否正确?类型转换是否正确? |
|
重要 |
在创建与释放动态对象数组时,new/delete的语句是否正确无误? |
|
|
…… |
|
C++ 函数的高级特性 | ||
重要性 |
审查项 |
结论 |
|
重载函数是否有二义性? |
|
重要 |
是否混淆了成员函数的重载、覆盖与隐藏? |
|
|
运算符的重载是否符合制定的编程规范? |
|
|
是否滥用内联函数?例如函数体内的代码比较长,函数体内出现循环。 |
|
正文
C++/C代码审查表(三)2007-04-11 22:08:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/lym51/24811.html
阅读(2718) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论