Chinaunix首页 | 论坛 | 博客
  • 博客访问: 629020
  • 博文数量: 87
  • 博客积分: 3399
  • 博客等级: 中校
  • 技术积分: 1422
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-17 21:20
文章分类

全部博文(87)

文章存档

2013年(1)

2012年(51)

2011年(33)

2010年(2)

分类: C/C++

2012-03-16 09:09:48

8.1不要想当然,要慎之又慎

对于while(c==’\t’ || c = ‘ ’ || c==’\n’ ) c=getc(f);不能想当然,因为赋值运算的优先级在括号里的运算中是最低的,上句会被理解成while( (c==’\t’ || c )= (‘ ’ || c==’\n’ ) ) c=getc(f);违背了初衷。记得操作符优先级: 算术>移位>关系>逻辑

8.2直截了当的表达意图

8.1中,直截了当的表达自己的意图,用括号使自己的意图更加清晰,同时对错误进行预料,在代码的编写方式上进行预防,比如在用‘==’比较一个变量和常量时,将常量放在左边,如果误写为‘=’,则因常量不能做左值,编译报错。

8.3考察最简单的特例

无论是设计程序还是测试程序,考虑最简单的特例,比如输入数据为空或者只有一个数据等情况。

8.4使用不对称边界

3.6详细讨论过。在for循环的条件中,数组下表从0开始,以不对称的边界结束。

8.5注意潜伏的bug

使用C语言众所周知的部分,避免使用生僻的特性,有些函数库考虑欠周到,要采取防备性措施。

8.6防御性编程

对程序用户和编译器实现的假设不要过多。再怎么不可能发生的情况有时也可能发生,因此要尽量考虑到异常的情况。

阅读(809) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~