概述
宏常量的作用是为经常使用的常量定义一个有一定意义的名字,宏常量的格式为:
#define 标识符常量 替换文本
#define编译指令的准确含义是,让编译器将源码中的所有标识符常量替换成替换文本,其效果与使用编辑器手工查找并替换相同。
例如:
#define PI 3.1415926
编译预处理指令#define将PI定义为一个要被3.1415926替换的符号,此时PI不是一个变量,而是3.1415926的别名。在编译开始之前,只要程序中引用了PI,预处理器就会用#define指令中的值3.1415926来取代它。
宏常量的缺点就是:在被替换成文本之后,内存中有同一个替换文本的多份副本。
const常量与变量定义形式相同,只不过加上const修饰,告诉编译器,它的值是固定的,不能改变,编译器会帮着监督和检查。
例如:
const double PI = 3.1415926;
const推出的目的就是为了取代宏常量,消除其缺点,同时继承其优点。
在编译的时候,由于const定义常量只是给出了对应的内存地址,而不是像#define给出的是替换文本,所以const定义的常量在程序运行过程中只有一份副本,而#define定义的常量在内存中有若干份副本。
简单总结下:宏常量由于是在预处理部分将所有标识符替换成相应常量,所以在程序运行过程中,每使用一次宏常量,就需要在内存中创建一份副本,而const常量由于是给出了对应的内存地址,所以在程序运行过程中只需要使用该地址下的常量,只有这一份副本。
最后
以上就是机灵飞机为你收集整理的const常量和宏常量的区别的全部内容,希望文章能够帮你解决const常量和宏常量的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复