剑魂之刃神翼水晶:请比较以下两种常量定义方式的优缺点:

来源:百度文库 编辑:高考问答 时间:2024/04/30 02:55:08
请比较以下两种常量定义方式的优缺点:
#define CommType_485Fault -1 //第一个

const int CommType_485Fault = -1 ; //第二个

预处理指令#define建立宏时做的是值替代,没有类型检查
const提供了类型检查,可避免预处理器在做值替代时一些出现的问题

#define不占内存
C++编译器通常不给const常量分配存储空间,只是把它存在符号表里(注:在VC中,const变量与一般的变量相同,都要分配空间)

#define一但定义不可重新定义
const定义的是可以通过强制类型转换进行更改的(注:又要说VC了...在VC中,一但碰到以const修饰的变量就自动用初始值替代...就是说,就算找到它的地址,并进行修改,其修改也是没有作用的!)

另外还有const是有作用域的