c++ - 编译器在编译 C++ 时是否用其值替换常量变量
问题描述
处理器每次使用时都必须从内存中获取常量变量的值。但是如果常量变量不能改变,编译器可以用它们的值替换它们,不是吗。
解决方案
这取决于,因为有两种类型的常量:
- 编译时常量(
const
在编译时初始化的变量或constexpr
变量)。 - 运行时常量(类似于标记为 的参数
const
)。
对于第一种类型(编译时常量),编译器确实可以用实际值“替换”变量,这就是所有主要编译器都会做的事情。
对于第二种类型,这是不可能的,因为直到运行时才知道这些值。
推荐阅读
- python - 对于以下示例,在 python 中对列表列表进行排序意味着什么:
- python - 关于矩阵中“格式错误的节点或字符串”的 Python 错误
- django - 尝试在 ContentType 下访问 Django 中的“content_object”字段
- python-3.x - 使用 FastAPI 创建带有变量和传入负载的自定义装饰器
- javascript - 我收到 13:5 错误“Home”组件已注册但未使用 vue/no-unused-components
- javascript - 如何使用 CSS/Javascript 制作锯齿状文本
- javascript - 反应中的Tensorflow automl模型
- google-cloud-platform - 将文件上传到 GCP 云存储的安全方式
- python - 将多行文本文件转换为 python 字符串
- node.js - TypeError:无法读取未定义 [Discord Bot] 的属性“执行”