重读金典------高质量C编程指南(林锐)-------第五章 常量
2014-03-07 13:26
260 查看
5.1 为什么需要常量
1)为了便于用户理解,增加程序的可读性。
2)在程序的很多地方都用到同一个常量,用某一个宏常量来定义可以减少错误。
规则:尽可能的使用含义直观明确的常量来表示程序中多次出现的数字或者字符串
5.2 #define vs const
一般在C里面一般用#define,而在C++中,更喜欢用const,因为const有很多类型。而define没有类型检查这一说,只是单纯的进行字符替代。
规则:C++中,程序一般使用const常量而不使用宏常量,即const常量完全取代宏常量。
5.3 常量定义规则
规则:需要对外公开的,写在头文件里面,不需要的写在定义文件里面。 当然,有时候为方便管理,也可以存放在一个公共的头文件中。
规则:如果某一个常量与其他常量密切相关,应该在定义中包含这种关系,而不应给出一些孤立的值。
const float R = 100;
const float D = 2 * R;
5.4 类中的常量
有时候,我们希望类中的某些数据成员也是常量,但#define 是全局的,不能达到目的。const 修饰也会改变数据成员的值。因为const只在某个对象的生存期内是常量,而对于整个类确是可变的。因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。
注意一点,我们不能在类声明中初始化const数据成员,因为类的对象未被创建之前,编译器不知道声明中的变量到底是多少。
但是,我们可以在类的构造函数中实现数据成员的初始化。当然,这只是针对于某个对象而言的。在对象未被实例化之前,类是没有分配空间的。
class A
{
enum{SIZE1 = 100, SIZE2 = 200;}//枚举常量
int array1[SIZE1];
int array2[SIZE2];
}
枚举常量不会占用对象的存储空间,他们在编译时被全部求值。缺点是:只能表示整数值,且最大值有限,不可表示浮点数。
1)为了便于用户理解,增加程序的可读性。
2)在程序的很多地方都用到同一个常量,用某一个宏常量来定义可以减少错误。
规则:尽可能的使用含义直观明确的常量来表示程序中多次出现的数字或者字符串
5.2 #define vs const
一般在C里面一般用#define,而在C++中,更喜欢用const,因为const有很多类型。而define没有类型检查这一说,只是单纯的进行字符替代。
规则:C++中,程序一般使用const常量而不使用宏常量,即const常量完全取代宏常量。
5.3 常量定义规则
规则:需要对外公开的,写在头文件里面,不需要的写在定义文件里面。 当然,有时候为方便管理,也可以存放在一个公共的头文件中。
规则:如果某一个常量与其他常量密切相关,应该在定义中包含这种关系,而不应给出一些孤立的值。
const float R = 100;
const float D = 2 * R;
5.4 类中的常量
有时候,我们希望类中的某些数据成员也是常量,但#define 是全局的,不能达到目的。const 修饰也会改变数据成员的值。因为const只在某个对象的生存期内是常量,而对于整个类确是可变的。因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。
注意一点,我们不能在类声明中初始化const数据成员,因为类的对象未被创建之前,编译器不知道声明中的变量到底是多少。
但是,我们可以在类的构造函数中实现数据成员的初始化。当然,这只是针对于某个对象而言的。在对象未被实例化之前,类是没有分配空间的。
class A
{
enum{SIZE1 = 100, SIZE2 = 200;}//枚举常量
int array1[SIZE1];
int array2[SIZE2];
}
枚举常量不会占用对象的存储空间,他们在编译时被全部求值。缺点是:只能表示整数值,且最大值有限,不可表示浮点数。
相关文章推荐
- 重读金典------高质量C编程指南(林锐)-------第一章 文件结构
- 重读金典------高质量C编程指南(林锐)-------第二章 程序的板式
- 重读金典------高质量C编程指南(林锐)-------第七章 内存管理
- 重读金典------高质量C编程指南(林锐)-------第三章 命名规则
- 重读金典------高质量C编程指南(林锐)-------第四章 表达式和基本语句
- 重读金典------高质量C编程指南(林锐)-------第六章 函数设计
- 高质量C++/C 编程指南--林锐博士--我所认为对程序员非常不错的编程经典!
- 高质量C/C++编程指南--常量
- 读林锐博士 高质量C++/C编程指南 笔记 2006-11-15第二章程序的版式
- 林锐-高质量c/c++编程指南
- <林锐高质量c/c++编程指南>记录
- 高质量C++/C编程指南 -- 第5章 常量
- 高质量 C++/C 编程指南 林锐 摘要 内存管理
- 高质量C++/C编程指南--第5章常量
- 读林锐博士 高质量C++/C编程指南 笔记 2006-11-15前言
- C和C++语言学习总结(资料来自<高质量C++/C 编程指南> 林锐博士 2001 年7 月24)
- 高质量C++/C编程指南 - 第5章 常量
- 高质量C++/C编程指南---常量
- pdf-林锐写的高质量 C++&C 编程指南 很经典
- 高质量C++/C编程指南 林锐