运行期常量与编译期常量的通俗理解

栏目: C++ · 发布时间: 5年前

内容简介:常量不用解释。简单说下什么是编译期,什么时运行期编译期是编译器将你写的代码和资源文件链接编译成可执行文件的这一过程。

常量不用解释。

简单说下什么是编译期,什么时运行期

编译期是编译器将你写的代码和资源文件链接编译成可执行文件的这一过程。

运行期是运行前面编译期生成的可执行文件的过程。

以C++为例

下面解释运行期常量和编译期常量

运行期常量(const修饰)从一开始就存在,而编译期常量(constexpr修饰)在C++11标准之后才加入。

const修饰的运行期常量,会在运行编译完成后的代码时,先在内存的常量区域开辟空间存放常量的值,以确保常量值不可变,保证程序的正确性。

而现实中存在一些情况,例如1+2的值恒定不变,或者某个函数在某种情况下的返回值可以由 程序员 人为确定,并确保程序可以正确运行,而不需要通过存放到内存上的常量区域来保证,这就为代码的优化提供了可能。

编译期常量是由编译器在编译时通过计算来确定常量的值,然后在代码中直接进行替换,类似于 #define MAX 5 在编译时将代码中所有的MAX替换成5一样,就不需要在后面的运行时再在内存上开辟空间存放常量,以达到优化的效果。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

玻璃笼子

玻璃笼子

[美]尼古拉斯·卡尔 / 杨柳 / 中信出版社 / 2015-11 / 49.00元

这是一本关于自动化的书,它提醒我们自动化对人类的影响,人们心安理得享受技术带来的便利却忽视了,它已经渗透进了生活和工作改变了我们的思维和认知方式。商家在设计程序和应用时,早就把他们的想法埋入了编程和APP中。 卡尔的作品无疑是给我们这个时代灌入了的一剂清醒药。他独特的思考问题角度,犀利甚至略为偏激 的言论再加上丰富的*前沿的科技案例会让人读起来畅快淋漓,且醍醐灌顶,意识到自动化等高科技潜移默......一起来看看 《玻璃笼子》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具