const与#define相比,区别和优点超详解总结
一:区别
(1)就起作用的阶段而言: #define是在编译的预处理阶段起作用,而const是在 编译、运行的时候起作用。
(2)就起作用的方式而言: #define只是简单的字符串替换,没有类型检查。而const有对应的数据类型,是要进行判断的,可以避免一些低级的错误。
(3)就存储方式而言:#define只是进行展开,有多少地方使用,就替换多少次,它定义的宏常量在内存中有若干个备份;const定义的只读变量在程序运行过程中只有一份备份。
(4)从代码调试的方便程度而言: const常量可以进行调试的,define是不能进行调试的,因为在预编译阶段就已经替换掉了。
二:const优点
(1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。
(2)有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
(3)const可节省空间,避免不必要的内存分配,提高效率
const与#define相比,区别和优点超详解总结相关推荐
- const与define相比优点_const与#define的区别、优点
const与#define的区别 编译器处理方式不同 define宏是在预处理阶段展开. 补充:预处理器根据以#开头的命令,修改原始的程序.比如我们常见的#include 命令告诉处理器读取系统头文件 ...
- C++ 中 const和define的区别
来源网址:http://wujiangping.blog.163.com/blog/static/195182011201255115125205/ 请区别用#define命令定义的符号常量和用con ...
- 操作系统 - 进程与线程的区别[超详解]
操作系统 - 进程与线程的区别[超详解]面试高频考题
- java语言与其他语言的区别是_Java语言特点有哪些?Java区别其他语言特点详解
Java语言特点有哪些?Java区别其他语言特点详解 Java是目前最流行的编程语言之一,那你知道为什么Java这么火吗?相比其他编程语言,Java的特点又有哪些呢?跟着小编一起来了解一下吧. 一.简 ...
- php self this static,PHP 中 self、static、$this 的区别和后期静态绑定详解
本篇文章给大家分享的内容是关于PHP 中 self.static.$this 的区别和后期静态绑定详解,有着一定的参考价值,有需要的朋友可以参考一下 self.static 和 $this 的区别 为 ...
- 线性规划之单纯形法【超详解+图解】-转载
线性规划之单纯形法[超详解+图解] 目录 1.作用 2.线性规划的一般形式 5.1几何意义 5.2如何判断最优 5.3如何选择新的基变量 5.4如何选择被替换的基变量 5.5终止条件 标准型: 转化为 ...
- PS中色相饱合度/可选颜色/色彩平衡/曲线的区别和运用方法详解
http://www.jb51.net/photoshop/374517.html PS中色相饱合度/可选颜色/色彩平衡/曲线的区别和运用方法详解 整体思路: 1.使用颜色混合模式营造照片基调. 2. ...
- JAVA 多线程并发超详解
JAVA 多线程并发超详解(未完,下一篇文章还有) 1. JAVA 多线程并发 1.1.1. JAVA 并发知识库 1.1.2. JAVA 线程实现/创建方式 1.1.2.1. 继承 Thread 类 ...
- C/C++实现回文质数(超详解)【沈七】
C/C++实现回文质数(超详解) 题目链接 题目描述 输入样例 **题解部分** **完整代码** **未完待续** 参考文章 唤我沈七就行嘿嘿. 大一软件工程在读. 菜鸡蒟蒻想在博客中记录一些算法学 ...
最新文章
- C++搞懂深拷贝初始化=与赋值(运算符重载)=的区别
- javascript调用父窗口(父页面)的方法
- java 论坛_武汉课工场JAVA培训:“真AI、超智能”人工智能大咖论坛解读
- java名 java_Java Syncrhonisers
- 在朋友圈求助的NTP问题~
- Linux手机适配,nginx同时适配PC版和手机移动版
- ubuntu 16.04 python3.4 升级为 python3.6
- python的matplotlib库怎么安装_为Python安装matplotlib库
- android开发根据分辨率设置高度,【android】根据屏幕分辨率设置底栏高度
- 中职计算机专业第二单元试题,大学计算机Moodle第二单元测验满分答案
- 3801.最佳连续子数组-AcWing题库
- 2016网络安全犯罪形势预测
- 计算机管理删除打印机驱动,彻底删除打印机驱动的方法
- 弘辽科技:如何快速提高淘宝店铺的综合评分
- 台式计算机diy,自己组装DIY台式电脑知识
- 史上最全的TCP/IP协议原理
- Mindjet MindManager 2019安装包
- python豆瓣历史评分_python快速查豆瓣评分
- sif4j 字符串拼接和占位符的区别
- 数字化势不可挡:“衣食住行”的升级之战,行业巨头如何破局