林锐高质量c编程阅读心得
来源:互联网 发布:网络词语ab是什么意思 编辑:程序博客网 时间:2024/05/16 11:16
这几天看了林锐的高质量c编程,因此,有一点感想,发表在这里
一、首先,看本书最大的体会,是作者对c编程细节方面的处理很到位,包括头文件的定义格式,算法主体中,程序的版式,文件、变量的命名都有着严格的规则。今天我刚打来这本书,因此可能来不及看完,所以选取了他函数设计和指针相关章节。
二、
1、在函数设计方面,良好的代码风格,在定义函数时,应该有详细的参数,且参数的命名应该合理。如果参数是指针,且仅作输入用,则应在类型前加const,以防止指针在函数体内被意外修改。如果输入参数以值传递的方式传递对象,则宜改用“const &”方式来传递,这样可以省去临时对象的构造和析构过程,从而提高效率。参数应该尽量少,并且不要使用类型不明确的参数。
2、要指明函数返回值类型,如果没有返回值,也应该注明。函数名字和返回值类型不可冲突,正常返回和错误返回,在编写程序的过程中,要严格区分开。如果函数的返回值是一个对象,有些场合用“引用传递”替换“值传递”可以提高效率。而有些场合只能用“值传递”而不能用“引用传递”,否则会出错。
3、函数体的“入口处”,对参数的有效性进行检查,在函数体的“出口处”,对return语句的正确性和效率进行检查,函数的功能要单一,单个函数尽量控制在50行以内。
三、
1、在内存分配分为在堆上分配(动态分配),在栈上分配,以及在静态存储区分配。
2、在使用指针进行调用时,应该先用if(fp==null)防止内存分配不成功。并且,即便分配成功了,也必须进行初始化等等,一旦发生错误操作,就会导致指针指向未知的内存空间,从而发生错误。
3、2、动态内存在使用后一定要进行释放,在释放后,若不讲指针初始化为null,就会生成野指针。在这里,我还区别了指针和数组的概念,以及指针参数传递内存的方式。发现指针p 被free 以后其地址仍然不变(非NULL),只是该地址对应的内存是垃圾,这是,指针就成了野指针。“野指针”不是NULL指针,是指向“垃圾”内存的指针,野指针的生成原因有以下几点:1指针变量没有被初始化2指针p 被free 或者delete 之后,没有置为NULL,让人误以为p 是个合法的指针 3指针操作超越了变量的作用范围。
今天看的内容大概就是这些,剩下的我会在这周内看完。
#ifnfef
#endif
在头文件中防止变量的重复引用,通常用这个模块产生预处理块。
- 林锐高质量c编程阅读心得
- 【读书心得】 高质量C++/C编程指南-林锐
- 《高质量 C++/C 编程指南 》阅读笔记(二)
- 《高质量 C++/C 编程指南 》阅读笔记(三)
- 《高质量 C++/C 编程指南 》阅读笔记(四)
- 嵌入式C高质量编程培训心得笔记
- 阅读《编写高质量代码》心得(1)
- 阅读《编写高质量代码》心得(2)
- 阅读《编写高质量代码》心得(3)
- 高质量C++/C 编程指南 阅读笔记(一)编程规范
- 阅读《高质量C++C编程指南》和《google_c++编程风格(高清版)》笔记
- <林锐高质量c/c++编程指南>记录
- 高质量C++C编程指南-阅读笔记-上海贝尔-林锐博士
- [读书笔记]《高质量C++/C编程指南》—林锐 (阅读至第1章)
- 编程之美阅读心得
- 高质量C/C++编程指南 阅读笔记(二)内存管理
- 高质量C/C++编程指南 阅读笔记(三)重载
- 高质量C/C++编程指南 阅读笔记(五)类的继承与组合
- Ruby的require工作
- Spring Bean 生命周期
- 并发容器
- HappyNumber解题报告
- Swift闭包详解
- 林锐高质量c编程阅读心得
- 状态压缩(2)+模拟枚举(2)--poj3279(能力题)
- C11新特性推荐《C++ Primer 第五版》
- 8、树TreePanel及菜单Menu组件应用
- viewpager所需的tabtitle
- Spring Bean的生命周期(非常详细)
- 菜鸟Java从零D1-、-
- 尝试做新事情30天-阅读架构即未来03
- 没那么简单--浅谈测试、QA、QM