第七、八章
2010-09-01 22:07
176 查看
第七章 可移植性缺陷
对于第七章,我虽然看了,但是真的不知道该怎么叙述啊,总部可能把书上的内容照着打一遍啊,唉~而且可移植性对我们来说虽然是一件很普通的事情,但是对于现在的我来说
还没有考虑这
么深入的问题,因此我决定不写了。对于这一章,还是看书好一些。例如书中
所提到的Mark Horton的How to Write Portable Software in C。
第八章 建议
1.不要说服自己相信“皇帝的新装”。有的错误极具欺骗性和伪装性
2.直截了当地表明意图。
当你想表达的意思可能出现歧义时,请使用括号或其他方法让你的
意图清晰明了。
3.考察最简单的特例。
这几乎适用于任何情况,你可以从最简单的例子中得到启发
4.使用不对称边界。
这是3.6的内容,值得再读一读
5.注意潜在暗处的Bug。
坚持使用C语言中众所周知的部分,避免“生僻”的语言特性。尤其是在移植程序时。
记住,程序的生命周期往往长于他所运行其上的机器的生命
6.防御性编程。
对于程序用户和编译器实现的假设不要过多
这是第八章。
下面是我在网上看到的一些关于C语言的一些建议:
一.程序版式
空行:根据代码间的相关程度确定是否加入空行
代码行:代码行只作一件事
代码行内的空格:易于区分独立的变量或常量
对齐:易于代码的层次
长行拆分:易于理解本行代码含义
注释:必要之处
命名规则:匈牙利命名法则等,一个程序内最好保持命名法则的统一
二.循环语句的效率
在多重循环中,应将循环次数最长的放到里曾
尽量将判断移到循环之外
三.指针只能和NULL比较,不能和0比较
四.浮点数没有0,不能和0比较,也不能直接比较大小
五.switch语句
case后面加break
defult记得加在最后
六.const常量有数据类型,最好别用define宏定义
七.函数设计
函数接口的要素事参数和返回值.c语言中,函数的参数和返回值的传递有两种:值传递和指针
参数的规则
参数的书写要完整,命名合适,要做到见名知其意(类型和含义)
如果参数是指针,仅做输入用,应在类型前加const,防止指针在函数体内被以外修改
避免函数有过多的参数,数量控制在5个以内
尽量不要使用类型和数量不确定的参数,即在函数入口检验参数的合法性(重要)
返回值的规则
不要省略返回值的类型
函数名字和返回值类型在语句上不可冲突
区分正常返回和错误返回
return不可返回指向栈内存的指针,因为此时栈已释放
要弄清返回的是值还是变量
函数功能要单一,规模要小,最好50行以内
尽量避免函数内有静态变量
不仅要检查输入变量的合法性,还要检查全局变量,文件指针等通过其他途径进入函数体的变量
对出错返回代码含义要清楚
八.malloc()申请内存后要记得free()释放
PS:第六条所说的在C语言中不行,只有在C++中const才能定义常量,我个人认为,在C语
言中需要定义数字常量时,也许可以用枚举来代替(枚举的反括号后面的分号别忘了)。
相关文章推荐
- C和指针:第七,八章
- 《大道至简》第七、八章 读后感
- 《汇编语言(王爽)》第七、八章【总结】
- 《大道至简》第七、八章有感
- 第七、八章抽象
- 第4本:程序员修炼之道-从小工到专家(第七、八章)
- 大道至简-第七、八章-心得体会
- 《Unix & Linux 大学教程》 - 第七、八章 学习笔记
- 第4本:程序员修炼之道-从小工到专家(第七、八章)
- OpenGL ES着色器语言之语句和结构体(官方文档第六章)内建变量(官方文档第七、八章)
- 读《大道至简》第七、八章有感
- delphi完美经典--第七、八章
- 大道至简——第七、八章读后感
- 第七/八章编程练习
- 《Java 学习笔记》 第七、八章阅读体验
- Python第七,八章练习题 (第四周作业)
- 第七和八章、Mysql数据库技术和php数据库编程技术
- 《Unix & Linux 大学教程》 - 第七、八章 学习笔记
- 大道至简第七,八章。感受。
- 工作流JBPM4.3中文版用户指南第七、八章(共八章)