(总结)编写高质量c语言代码 第5 章糖果机界面

1.要使用户不容易忽视错误情况不要在正常地返回值中隐藏错误代码
2. ,那些经常把错误值和有效数据混杂在一起返回的程序员,会习惯性地设计出象 realloc 这样的界面.
3. (“不要在返回值中隐 藏错误”)
4. 我认为找出这些暗藏陷阱的唯一办法是停下来思考所做的设计。这样做 的最佳途径是检查输入和输出的各种可能组合,寻找可能引起问题的副作用。
5. 要不遗余力地寻找并消除函数界面中的缺陷
6 . realloc 的另一个问题是:我们知道传递给realloc 的可能是无用信息,但是因为其定 义如此通用使它很难防范无效的参数。如果错误地给它传递了NULL 指针,合法;如果错误 地给它传递了为零的块长也合法。
7. 不管出于什么样的理由编写了多功能的函数,都要把它分解为不同的功能。对于 realloc 来说,就是要分解出扩大内存块、缩小内存块、分配内存块和释放内存块。把realloc 分解为四个不同的函数.
8. 不要编写多种功能集于一身的函数 为了对参数进行更强的确认,要编写功能单一的函数.
9. 正象明确的输出使人容易搞清函数的结果一样,明确的输入亦使人容易理解函数要做 的事情,它对必须阅读和理解别人程序的维护人员极有价值。
10. 从靠近错误的断言开始查错,要比从错误的输出开始查错速度更快。
11 . 从“无错”的观点,如果函数的参数越界或者无意义,那么即使能被智能地处理,仍然 应该被视为非法的输入。
12. 程序员处理大小(或计数)为O 参数通常是因为
他们能够处理而不是应该处理。如果所编函数有大小参数,那么并不一定非得对大小为0
进行处理,而要问自己:“程序员用大小为0 的参数调用这个函数的额度是多少?”如果根
本或者几乎不会这么调用,那就不要对大小为0 进行处理,而要加上相应的断言。 要记住,
消除限制就是消除捕获相应错误的机会,所以一个良好的准则是,一开始就要为函数的输入
选择严格的定义,并最大限度地利用断言。这样,如果过后发现某个限制过于苛刻,可以把
它去掉而不至于影响到程序的其它部分。
13. 不要模棱两可,要明确地定义函数的参数。
14.返回错误就意味着对错误进行处理, 如果发现自己在设计函数时要返回一个错误代码,那么要先停下来问自己:是否还有其 它的设计方法可以不用返回该错误情况
15. 编写函数使其在给定有效的输入情况下不会失败
16. 并非只有把输出都合在一起和返回不必要的错误代码才会 导致复杂的代码。有时引起代码复杂化的原因完全由于粗心而忽视了相应的函数调用“读’ 的效果。
17. 序员在几十年前就已经知道应该在程序中避免使用莫名其妙的数字。有名的常量不仅可以使 代码更可读,而且使代码更可移植。
18. 使程序在调用点明了易懂;要避免布尔参数
19. 编写注解突出可能的异常情况
20.对一个函数界面的设计要从以下方面进行考虑:1.函数的传入参数是否合理,2.函数的返回值是否合理3.函数的调用是否方便

转载于:https://my.oschina.net/taisha/blog/54629

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值