两种区别比较
1.const常量有数据类型,而宏常量没有数据类型。
2.编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查
3.有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
常量定义规则
1.需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部
2.为便于管理,可以把不同模块的常量集中存放在一个公共的头文件中。
3.如果某一常量与其它常量密切相关,应在定义中包含这种关系,而不应给出一些孤立的值。
例如:const float RADIUS = 100;const float DIAMETER = RADIUS * 2;
(由于const定义常量从汇编的角度来看,只是给出了对应的内存地址,
而不是象#define一样给出的是立即数,所以,const定义的常量在
程序运行过程中只有一份拷贝,而#define定义的常量在内存中有
若干个拷贝)