码迷,mamicode.com
首页 > 其他好文 > 详细

const和defin区别

时间:2020-02-23 09:18:57      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:str   错误   运行   安全   存在   预处理   过程   使用   分配   

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

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

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

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

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

const和defin区别

标签:str   错误   运行   安全   存在   预处理   过程   使用   分配   

原文地址:https://www.cnblogs.com/Jun10ng/p/12348307.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!