background image

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;