6 可以节省
空间,避
免不必要
的内存分
配
const 定义常
量从汇编的角
度来看,只是
给出了对应的
内存地址,而
不是象
#define 一样
给出的是立即
数,所以,
const 定义的
常量在程序运
行过程中只有
一份拷贝,而
#define 定义
的常量在内存
中有若干个拷
贝
#define PI 3.14159
//常量宏
const doulbe Pi=3.14159;
//此时并未将 Pi
放入 ROM 中
......
double i=Pi;
//此时为 Pi 分配内存,以后不再
分配!
double I=PI;
//编译期间进行宏替换,分配内
存
double j=Pi;
//没有内存分配
double J=PI;
//再进行宏替换,又一次分配内
存!
7 提高了效
率
编译器通常不
为普通 const
常量分配存储
空间,而是将
它们保存在符
号表中,这使
得它成为一个
编译期间的常
量,没有了存
储与读内存的
操作,使得它
的效率也很高
二 、 Const 的 使 用
1、定义常量
(1)const 修饰变量,以下两种定义形式在本质上是一样的。它的含义是:
const 修饰的类型为 TYPE 的变量 value 是不可变的。
TYPE const ValueName = value;
const TYPE ValueName = value;
(2)将 const 改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不
进行初始化,仅仅作为声明,编译器认为在程序其他地方进行了定义.
extend const int ValueName = value;
2、指针使用 CONST
(1)指针本身是常量不可变
(char*) const pContent;