《高质量C++/C编程指南(林锐)》学习笔记
2013-09-22 20:54
295 查看
1. 不可以将布尔变量直接和TRUE、FALSE、1、0进行比较。应该用if(flag)或者if(!flag)。
整型变量直接用”==“或者”!=“与0进行比较。
浮点变量不可以直接用”==“或者“!=”与数字比较。
指针变量用“==”和“!=”与NULL直接进行比较。
2. 可以使用诸如if(NULL == P)来避免if(NULL=P)类错误。
3. 在有循环嵌套的时候,尽量将长循环放在最内层,这样可以提高效率。
4. 可以使用#define来定义宏常量,用const来定义const常量。const常量有数据类型,宏常量没有数据类型。编译器可以对const常量进行类型安全检查。在C++中,const常量
完全取代宏常量。
5. C语言中,函数参数传递有值传递和指针传递两种方式;C++语言中,函数参数传递有值传递、指针传递以及引用传递。如果函数无参数,使用void进行填充。
6. 使用宏断言assert对程序进行检查。assert仅在Debug版本起作用。Debug版本主要用于内部调试,Release版本主要发行给用户使用。
7. return语句不可以返回“栈内存”的“指针”或者“引用”,因为该部分内存在函数体结束时会被自动销毁。
8. 内存分配方式,如全局变量、static变量等在程序编译时就已经分配好的内存在静态存储区域。如函数内局部变量等存储单元在栈上分配内存。如用malloc或new申请的动态内
存从堆上分配。
9. 内存容量计算。使用sizeof计算数组容量是可以的,若使用sizeof识别指针变量所指向的容量大小,只能得到一个指针变量的字节数,而不是其所指的内存容量。另外,当数组
作为函数的参数进行传递时,该数组自动退化为同类型的指针。
10. 当指针p被free掉之后,其地址仍然不变,但是该地址对应的内存是垃圾,p变成“野指针”,此时需要把p设置为NULL。
11. inline是一种“用于实现的关键字”,而不是一种“用于声明的关键字”。定义在类声明中的成员函数将自动地成为内联函数。内联可以提高执行效率,但是以代码膨胀为代价,要
权衡执行效率和内存空间。
12. C++编译器编译任意一个类时,会自动产生四个缺省函数:无参数构造函数,拷贝构造函数,析构函数,赋值函数。
整型变量直接用”==“或者”!=“与0进行比较。
浮点变量不可以直接用”==“或者“!=”与数字比较。
指针变量用“==”和“!=”与NULL直接进行比较。
2. 可以使用诸如if(NULL == P)来避免if(NULL=P)类错误。
3. 在有循环嵌套的时候,尽量将长循环放在最内层,这样可以提高效率。
4. 可以使用#define来定义宏常量,用const来定义const常量。const常量有数据类型,宏常量没有数据类型。编译器可以对const常量进行类型安全检查。在C++中,const常量
完全取代宏常量。
5. C语言中,函数参数传递有值传递和指针传递两种方式;C++语言中,函数参数传递有值传递、指针传递以及引用传递。如果函数无参数,使用void进行填充。
6. 使用宏断言assert对程序进行检查。assert仅在Debug版本起作用。Debug版本主要用于内部调试,Release版本主要发行给用户使用。
7. return语句不可以返回“栈内存”的“指针”或者“引用”,因为该部分内存在函数体结束时会被自动销毁。
8. 内存分配方式,如全局变量、static变量等在程序编译时就已经分配好的内存在静态存储区域。如函数内局部变量等存储单元在栈上分配内存。如用malloc或new申请的动态内
存从堆上分配。
9. 内存容量计算。使用sizeof计算数组容量是可以的,若使用sizeof识别指针变量所指向的容量大小,只能得到一个指针变量的字节数,而不是其所指的内存容量。另外,当数组
作为函数的参数进行传递时,该数组自动退化为同类型的指针。
10. 当指针p被free掉之后,其地址仍然不变,但是该地址对应的内存是垃圾,p变成“野指针”,此时需要把p设置为NULL。
11. inline是一种“用于实现的关键字”,而不是一种“用于声明的关键字”。定义在类声明中的成员函数将自动地成为内联函数。内联可以提高执行效率,但是以代码膨胀为代价,要
权衡执行效率和内存空间。
12. C++编译器编译任意一个类时,会自动产生四个缺省函数:无参数构造函数,拷贝构造函数,析构函数,赋值函数。
相关文章推荐
- 学习笔记之高质量C++/C编程指南
- 高质量C++编程指南学习笔记
- 高质量C++C编程指南-阅读笔记-上海贝尔-林锐博士
- C和C++语言学习总结(资料来自<高质量C++/C 编程指南> 林锐博士 2001 年7 月24)
- 高质量C++编程指南学习笔记5-6章---thanks to林锐
- 高质量C++编程指南学习笔记第7章---thanks to林锐
- 推荐-高质量C++/C编程指南(林锐)
- 高质量C/C++编译指南 学习笔记
- 高质量C++编程指南学习笔记3-4章---thanks to林锐
- 高质量C++/C编程指南学习笔记(上)
- 高质量C++编程指南学习笔记1-2章---thanks to林锐
- 高质量C++/C编程指南(林锐)
- 读林锐博士 高质量C++/C编程指南 笔记 2006-11-15前言
- 高质量C++/C编程指南学习笔记(上)
- 高质量C++/C编程指南(林锐)
- 高质量C++编程指南学习笔记第8章---thanks to林锐
- 读林锐博士 高质量C++/C编程指南 笔记 2006-11-15第一章文件结构
- 高质量C++/C编程指南学习笔记(上)
- 高质量C++/C编程指南(林锐)
- 高质量C++程序指南 学习笔记