一:区别

(1)就起作用的阶段而言: #define是在编译的预处理阶段起作用,而const是在 编译、运行的时候起作用。
(2)就起作用的方式而言: #define只是简单的字符串替换,没有类型检查。而const有对应的数据类型,是要进行判断的,可以避免一些低级的错误。 
(3)就存储方式而言:#define只是进行展开,有多少地方使用,就替换多少次,它定义的宏常量在内存中有若干个备份;const定义的只读变量在程序运行过程中只有一份备份。
(4)从代码调试的方便程度而言: const常量可以进行调试的,define是不能进行调试的,因为在预编译阶段就已经替换掉了。

二:const优点

(1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。
(2)有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
(3)const可节省空间,避免不必要的内存分配,提高效率

const与#define相比,区别和优点超详解总结相关推荐

  1. const与define相比优点_const与#define的区别、优点

    const与#define的区别 编译器处理方式不同 define宏是在预处理阶段展开. 补充:预处理器根据以#开头的命令,修改原始的程序.比如我们常见的#include 命令告诉处理器读取系统头文件 ...

  2. C++ 中 const和define的区别

    来源网址:http://wujiangping.blog.163.com/blog/static/195182011201255115125205/ 请区别用#define命令定义的符号常量和用con ...

  3. 操作系统 - 进程与线程的区别[超详解]

    操作系统 - 进程与线程的区别[超详解]面试高频考题

  4. java语言与其他语言的区别是_Java语言特点有哪些?Java区别其他语言特点详解

    Java语言特点有哪些?Java区别其他语言特点详解 Java是目前最流行的编程语言之一,那你知道为什么Java这么火吗?相比其他编程语言,Java的特点又有哪些呢?跟着小编一起来了解一下吧. 一.简 ...

  5. php self this static,PHP 中 self、static、$this 的区别和后期静态绑定详解

    本篇文章给大家分享的内容是关于PHP 中 self.static.$this 的区别和后期静态绑定详解,有着一定的参考价值,有需要的朋友可以参考一下 self.static 和 $this 的区别 为 ...

  6. 线性规划之单纯形法【超详解+图解】-转载

    线性规划之单纯形法[超详解+图解] 目录 1.作用 2.线性规划的一般形式 5.1几何意义 5.2如何判断最优 5.3如何选择新的基变量 5.4如何选择被替换的基变量 5.5终止条件 标准型: 转化为 ...

  7. PS中色相饱合度/可选颜色/色彩平衡/曲线的区别和运用方法详解

    http://www.jb51.net/photoshop/374517.html PS中色相饱合度/可选颜色/色彩平衡/曲线的区别和运用方法详解 整体思路: 1.使用颜色混合模式营造照片基调. 2. ...

  8. JAVA 多线程并发超详解

    JAVA 多线程并发超详解(未完,下一篇文章还有) 1. JAVA 多线程并发 1.1.1. JAVA 并发知识库 1.1.2. JAVA 线程实现/创建方式 1.1.2.1. 继承 Thread 类 ...

  9. C/C++实现回文质数(超详解)【沈七】

    C/C++实现回文质数(超详解) 题目链接 题目描述 输入样例 **题解部分** **完整代码** **未完待续** 参考文章 唤我沈七就行嘿嘿. 大一软件工程在读. 菜鸡蒟蒻想在博客中记录一些算法学 ...

最新文章

  1. C++搞懂深拷贝初始化=与赋值(运算符重载)=的区别
  2. javascript调用父窗口(父页面)的方法
  3. java 论坛_武汉课工场JAVA培训:“真AI、超智能”人工智能大咖论坛解读
  4. java名 java_Java Syncrhonisers
  5. 在朋友圈求助的NTP问题~
  6. Linux手机适配,nginx同时适配PC版和手机移动版
  7. ubuntu 16.04 python3.4 升级为 python3.6
  8. python的matplotlib库怎么安装_为Python安装matplotlib库
  9. android开发根据分辨率设置高度,【android】根据屏幕分辨率设置底栏高度
  10. 中职计算机专业第二单元试题,大学计算机Moodle第二单元测验满分答案
  11. 3801.最佳连续子数组-AcWing题库
  12. 2016网络安全犯罪形势预测
  13. 计算机管理删除打印机驱动,彻底删除打印机驱动的方法
  14. 弘辽科技:如何快速提高淘宝店铺的综合评分
  15. 台式计算机diy,自己组装DIY台式电脑知识
  16. 史上最全的TCP/IP协议原理
  17. Mindjet MindManager 2019安装包
  18. python豆瓣历史评分_python快速查豆瓣评分
  19. sif4j 字符串拼接和占位符的区别
  20. 数字化势不可挡:“衣食住行”的升级之战,行业巨头如何破局

热门文章

  1. 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解
  2. 面试题16: 数值的整数次方
  3. Codeforces 963A Alternating Sum 【数论+数学】
  4. python_selenium之第一个自动化脚本
  5. AOJ 491.扑克牌
  6. Oracle高级查询
  7. VMware安装和使用时遇到的一些小问题及解决方法
  8. 采用Huffman编码进行数据压缩
  9. 进行直播间搭建时需要注意的小细节
  10. JavaScript夯实基础系列(二):闭包