正文

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”     ……   内存管理 重要性 审查项 结论 重要 用malloc或new申请内存之后,是否立即检查指针值是否为NULL?(防止使用指针值为NULL的内存)   重要 是否忘记为数组和动态内存赋初值?(防止将未被初始化的内存作为右值使用)   重要 数组或指针的下标是否越界?   重要 动态内存的申请与释放是否配对?(防止内存泄漏)   重要 是否有效地处理了“内存耗尽”问题?   重要 是否修改“指向常量的指针”的内容?   重要 是否出现野指针?例如 (1)指针变量没有被初始化。 (2)用free或delete释放了内存之后,忘记将指针设置为NULL。   重要 是否将malloc/free 和 new/delete 混淆使用?   重要 malloc语句是否正确无误?例如字节数是否正确?类型转换是否正确?   重要 在创建与释放动态对象数组时,new/delete的语句是否正确无误?     ……   C++ 函数的高级特性 重要性 审查项 结论   重载函数是否有二义性?   重要 是否混淆了成员函数的重载、覆盖与隐藏?     运算符的重载是否符合制定的编程规范?     是否滥用内联函数?例如函数体内的代码比较长,函数体内出现循环。  

阅读(2890) | 评论(0)


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

评论

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