C++ 程序如何映射到计算机的内存和操作?

C++ 程序如何映射到计算机的内存和操作?,c++,c,memory-management,compiler-construction,C++,C,Memory Management,Compiler Construction,什么为函数编写编译器,它为函数分配内存?如何分配? 通常很容易将数据结构存储在内存中。但如何进行操作?像函数体中的语句?编译器为他们做什么 操作是使某些东西工作所需的步骤。假设您有以下代码片段: int a = 1; int b = 2; int c = a + b; 这将涉及到对a、b和c的一些存储,以及将值1存储到a中,将值2存储到b中,然后计算a+b并将其存储到c中的一些操作 理解它是如何工作的,这是理解计算机总体工作原理的关键,要完全涵盖它是一个相当复杂的主题,我怀疑它是否适合作为一个

什么为函数编写编译器,它为函数分配内存?如何分配?
通常很容易将数据结构存储在内存中。但如何进行操作?像函数体中的语句?编译器为他们做什么

操作是使某些东西工作所需的步骤。假设您有以下代码片段:

int a = 1;
int b = 2;
int c = a + b;
这将涉及到对a、b和c的一些存储,以及将值1存储到a中,将值2存储到b中,然后计算a+b并将其存储到c中的一些操作


理解它是如何工作的,这是理解计算机总体工作原理的关键,要完全涵盖它是一个相当复杂的主题,我怀疑它是否适合作为一个简单的问题

所以编译器生成这些指令,当程序加载时内存会存储这些指令吗?这就是困惑,指令如何像数据一样存储?是的,指令存储在内存中。在大多数现代系统中,指令和数据存储在同一个内存中,只是存储在不同的位置。在较旧的系统中,代码有时以各种方式将内存与数据分开。非常感谢您的回复。那么CPU如何区分它的数据还是指令呢?通常,程序是以指令启动的,而指令只会引导到其他指令上。但是,如果您编写的代码以某种方式跳转到数据,那么处理器会将该数据解释为指令,并在形成有效指令的过程中继续运行。操作系统可能会通过将不同的内存区域设置为“不执行”来防止这种情况,但并非所有处理器和操作系统都支持这种设置。我知道你们很聪明。但是,如果你没有时间在这个问题上提供帮助,请不要低估。对你来说一个简单的问题对其他人来说可能仍然很难。谢谢你的问题结束的原因是它不是一个精确的问题-它或多或少需要一本书来回答这个问题。你在上一个问题中提出的一些书几乎是相同的。不要指望这里的人不会发现你问的是同一个问题!关于这个问题,我已经参考了大部分的书,但有时他们会更困惑!然后从论坛上寻找帮助。这发生在我身上,这就是我问这个问题的原因。是的,对于这类问题,你可能会找到更好的论坛,因为这是一个很长的主题,不容易解释。或者问一个更具体的问题,而不是问一个200页的书作为答案的问题。这里不太可能有人会写一本200页的书来回答这个问题,这是有道理的。非常感谢你的信息。那个么我需要删除这个问题来帮助论坛吗?