const和define的区别
来源:互联网 发布:hbuilder mui商城源码 编辑:程序博客网 时间:2024/05/17 03:23
(1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。(2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行类型检查。(3) 存储方式不同 define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。 const常量会在内存中分配(可以是堆中也可以是栈中)。(4)const 可以节省空间,避免不必要的内存分配。 例如: #define PI 3.14159 //常量宏 const doulbe Pi=3.14159; //此时并未将Pi放入ROM中 ...... double i=Pi; //此时为Pi分配内存,以后不再分配! double I=PI; //编译期间进行宏替换,分配内存 double j=Pi; //没有内存分配 double J=PI; //再进行宏替换,又一次分配内存! const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而 #define定义的常量在内存中有若干个拷贝。 (5) 提高了效率。 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高
0 0
- const和define的区别
- #define和const的区别
- #define和const的区别
- const和define的区别
- const 和define的区别
- const 和define的区别
- const 和 define 的区别
- const和#define的区别
- const和#define的区别
- const和define的区别
- const和#define的区别
- #define和const的区别
- CONST 和#define的区别
- const和#define的区别
- const和#define的区别
- const和define的区别!
- const和#define的区别
- const和define的区别
- swift 音乐播放器项目-《lxy的杰伦情歌》开发实战演练
- CentOS 6.4安装GDB
- qml红色下划线去除
- 如何使用sourcetree 或 IDEA 自带的git合并代码?
- 类的加载机制
- const和define的区别
- 自动化测试
- 删除kafka 残余topics
- python 解压文件
- 多线程的设计模式
- 字符串比较时空指针异常
- Android Studio 创建assets 文件夹
- spring各个jar包的作用
- 二三层转发具体过程