const和defin区别

Posted jun10ng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const和defin区别相关的知识,希望对你有一定的参考价值。

(1)类型的安全性检查:const常量有数据类型,而define定义宏常量没有数据类型。则编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查(字符替换时可能会产生意料不到的错误,如上面的程序所示);

(2)调试:部分调工具可以对const常量进行调度,但不能对宏常量进行调度;

(3)编译器的处理方式不同:define宏是在预处理阶段展开,const常量则是编译运行阶段使用;

(4)存储方式不同:define宏仅仅是展开,有几个地方使用则展开几次,不分配内存;const常量会在内存中分配地址(可以是堆中也可以是栈中);

(5)效率:define定义的常量在内存中有若干个拷贝;const定义的常量在程序运行过程中只有一份拷贝,甚至不为普通const常量分配存储空间,而是将它们保存在符号表中,相当于没有了读内存的操作,使得效率也很高

以上是关于const和defin区别的主要内容,如果未能解决你的问题,请参考以下文章

宏定义 #define 和常量 const 的区别

const和defin区别

const和#define有什么区别?

const常量和#define宏常量的区别

c++中 #define和const的区别

const与#define的区别优点