gpt4 book ai didi

c++ - 在 C++ 中声明为 const 的数据会发生什么

转载 作者:行者123 更新时间:2023-11-30 02:09:02 25 4
gpt4 key购买 nike

当我们声明 const 变量时,在 Bruce eckel 的书中说常量折叠发生,这意味着没有为变量分配内存。

当我们将变量声明为 const 时会发生什么?

  1. 编译器如何自由优化const变量?
  2. const 变量的内存是否总是分配的,在什么情况下可能不是?

最佳答案

编译器可以自由优化 const 变量(以及任何其他变量),只要您无法分辨出程序所做的不同即可。

例如:

const int three = 3;
const int four = 4;

int f() { return three * four; }

在这里,编译器可以自由地省略为变量分配存储空间,并且可能会生成与编写的完全相同的代码 return 12;

但是如果你获取了three的地址,或者绑定(bind)了一个对它的引用,或者将它声明为extern,那么编译器可能会被迫为其分配内存。

关于c++ - 在 C++ 中声明为 const 的数据会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5815822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com