gpt4 book ai didi

c++ - 为什么书上说 “the compiler allocates space for variables in memory” ?

转载 作者:IT老高 更新时间:2023-10-28 23:22:39 27 4
gpt4 key购买 nike

为什么书上说“编译器为内存中的变量分配空间”。不是可执行文件吗?我的意思是,例如,如果我编写以下程序,

#include <iostream>
using namespace std;

int main()
{
int foo = 0;
cout<<foo;
return 0;
}

并编译它,得到一个可执行文件(让它成为program.exe),现在,如果我运行program.exe,这个可执行文件将自己命令为变量foo分配一些空间。不会吗?请解释为什么书籍一直说,“编译器会做这个......做那个”,而实际上,编译的可执行文件会这样做。

在这个问题上添加另一个相关问题,为什么 sizeof 称为编译时运算符?它实际上不是一个运行时运算符吗?

最佳答案

当我们聘请建筑师设计房屋时,他或她会定义房间的大小等,并告知 worker (劳工)。 worker 们相应地进行工作。但我们仍然会说“建筑师以这种方式 build 房屋”而不是 worker 以这种方式 build 房屋”。

worker 只是在执行建筑师定义的步骤。编译器实际上会在运行时检查和定义要分配多少内存等等,然后这些指令就会被执行。

关于c++ - 为什么书上说 “the compiler allocates space for variables in memory” ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15805953/

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