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

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

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

常量不用解释。

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

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

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

以C++为例

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

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

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

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

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


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

查看所有标签

猜你喜欢:

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

Coding the Matrix

Coding the Matrix

Philip N. Klein / Newtonian Press / 2013-7-26 / $35.00

An engaging introduction to vectors and matrices and the algorithms that operate on them, intended for the student who knows how to program. Mathematical concepts and computational problems are motiva......一起来看看 《Coding the Matrix》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

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

UNIX 时间戳转换