免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2410 | 回复: 8
打印 上一主题 下一主题

[C++] C++编程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-10 10:51 |只看该作者 |倒序浏览
看见If,就想Else。看到if语句,就要想到else语句。如果没有else语句,就要分析是不需要,还是异常情况没有处理,如果是异常情况没有处理,可以提单。                 九字真言:if…else
"看见malloc,就去找Free。
看到malloc语句分配了内存,立即停下正常走读,看malloc代码之后,是否在所有程序的返回分支中都有释放语句。 "                九字真言:malloc
"函数调用要小心,需要看看返回值。
到函数调用,要养成习惯,进入函数内部瞄一眼。看看函数的正常值和异常值都是什么。看看返回值需不需要判断。看看有没有参数理解不一致的地方。"                九字真言:函数调用
"看到for循环,就找边界值。
看到for循环,就要看看边界值是否合理。如果循环变量是数组的下标,更加需要注意。"                九字真言:for循环
"看见return要注意,要去前面找资源。
看见return语句,尤其是函数中间的异常返回语句。看到这种语句,就需要折回头去看看前面有没有分配资源。前面分配的任何资源(包括内存,端口,等等),在异常返回处需要一并释放。"                九字真言:Return
"看见数组把神提,问题往往在下标。
函数中一旦出现数组,就要提起精神。数组越界可是个致命问题。"                九字真言:数组
"不要小看字符串,长度是个大问题。
字符串往往是代码审查中不被重视的问题。而字符串由于各个模块对其他模块的不了解,经常出现随便定义一个字符串长度的现象。"                九字真言:字符串
"得到函数不要急,看看变量初始化,各种路径要小心。
在拿到函数之后,要习惯性的看看所有的局部变量是在函数一开始就被初始化了如果有变量没有被初始化,就要小心了。如果发现变量是在if,for,while,等语句中被初始化的,问题可能就来了。 "                九字真言:函数变量
"赋值函数最危险,变量没有初始化。
在C代码中,经常使用将变量的指针作为参数,在被调用函数中对变量进行赋值的做法。这种程序的写法是标准的C语言的用法,无可厚非。但这种做法隐藏着极大的危险。"                九字真言:赋值函数

论坛徽章:
0
2 [报告]
发表于 2011-03-10 10:55 |只看该作者
附:软件代码质量要求               
编写简洁、可维护、可靠、可测试、高效和可移植代码是每一位软件开发人员的责任和目标。针对当前突出的软件腐化问题,明确软件代码的质量要求如下:               
1、  简洁               
代码简洁就是易于理解并且易于实现。尽量编写少但功能完备的简洁代码,日后可以随时为额外的功能添加更多的代码。提高简洁的方法有:单一功能、强内聚且低耦合、避免函数过长、避免嵌套过深、避免重复等。               
2、  可维护               
代码可维护性是软件被修改的能力,包括纠错、改进、新需求或功能规格变化的适应能力。面对进度压力开发人员容易忽略代码的可维护性。我们要谨慎的编程,使系统中每个组件尽可能地“保护”自己;同时不要做任何假想,随着代码的增长,没有记录下来的假想会不断地造成缺陷。提高可维护性的方法有:使用好的编码风格、编码清晰、降低代码复杂度、尽可能减少全局变量等。               
3、  可靠               
代码可靠性是软件在给定时间间隔和环境条件下,按设计要求成功运行程序的概率。提高可靠性的方法有:使用安全的函数和数据结构、编译时打开所有的警告开关并清除所有警告、使用静态检查工具分析代码并清除所有警告、检查所有的输入、验证所有的运算、检查所有返回值、避免强制转换、避免内存越界、避免内存泄漏等。               
4、  可测试               
代码可测试性是指软件发现故障并隔离、定位故障的能力,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。提高可测试性的方法有:尽量减少依赖、保持代码可观测性、限制代码复杂度等。               
5、  高效               
代码性能高效是尽可能少地占用系统资源,包括内存和执行时间。提高性能的方法有:合理利用语言特性和编译选项,例如禁用C++的RTTI,可以减少可执行文件大小;代码内嵌,可以减少方法调用的开销;将不变条件的计算移到循环体外;利用并行和线程来防止串行操作;避免或者移除过多的锁;添加缓存或者缓冲层,以加快较慢的数据访问,或防止漫长的重复计算;创建资源库,以减少分配对象的开销。               
6、  可移植               
可移植性是为了在原来设计的特定环境之外运行,对系统进行修改的能力。提高可移植性的方法有:使用标准库函数,并且把它们和类似ANSI/ISO C标准中定义的头文件放在一起使用;尽可能使所写的程序适用于更多的编译环境;把不可移植的代码分离出来。

论坛徽章:
0
3 [报告]
发表于 2011-03-10 14:00 |只看该作者
if 之后不必else吧,很多情况下是不需要的。

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
4 [报告]
发表于 2011-03-10 14:08 |只看该作者
有趣

论坛徽章:
0
5 [报告]
发表于 2011-03-10 14:18 |只看该作者
做人莫作标题党,去掉++比较好。

论坛徽章:
3
白羊座
日期:2013-11-05 12:59:14子鼠
日期:2014-01-29 14:14:50戌狗
日期:2014-02-11 16:21:45
6 [报告]
发表于 2011-03-10 14:51 |只看该作者
C++ 还 malloc/free?

论坛徽章:
0
7 [报告]
发表于 2011-03-10 19:23 |只看该作者
阅过,围观以上各楼评论...

论坛徽章:
0
8 [报告]
发表于 2011-03-26 10:55 |只看该作者
恩  支持

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:56:11
9 [报告]
发表于 2011-03-26 12:06 |只看该作者
本帖最后由 nizvoo 于 2011-03-26 12:11 编辑

什麽理論。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP