www.b31.com
热门文章
随机文章
您当前位置:主页 > 28365365最新网址 > 正文
什么是C ++中的“堆栈”?
作者:365bet体育在线手机  更新时间:2019-10-17 01:33:22
全部展开
努力思考是件好事,但是您的理解显然被误解了。
堆栈的表面意味着许多人说实现细节很深。让我们谈谈我的理解。
首先,堆栈实现不是物理实现。没有专门设计电池的计算机设计。您需要提供什么计算机?
记忆体
从计算机设计师那里,他们给计算机留下了记忆。您需要知道2GB4GB或8GB每个内存都有一个地址。
然后他知道,如果不接触硬件,那么他通常接触的地址就是物理地址。例如,如果您有一个指向地址0x12345的指针,则不要假定它在相应的内存中。实际上,该地址只是一个虚拟地址。该地址的实际答复是什么?那就是操作系统。操作系统内存管理单元负责分配内存。例如,如果操作系统知道实内存0x23456是不活动的,则将0x12345分配给0x23456。这称为内存分配。
然后,您需要知道对于每个正在运行的进程,操作系统都不会与4GB的软件内存冲突,无论实际内存是否为2GB8GB。
每个软件都需要知道它可以使用1-4GB的内存地址。对于与操作系统物理相关的事物,我们保证操作系统不是独立的。此实现非常简单。
如果您了解上述内容,则可以说是堆栈。
堆栈是内存的一部分,但是其实现是无法理解的。说您能理解。在汇编代码级别,这是无法理解的逻辑。也许这只是您的第一步,但是组装。代码中有很多指令,并且计算机中有很多记录(您知道它是什么)。电池底部。
两个推送指令意味着它们需要堆叠在一起。换句话说,esp -4pop的值表示esp + 4电池有其自己的电池。例如,最主要的是堆栈,然后将function1函数称为堆栈,但这不是电池,而是实际上的相邻地址。通过在每个程序堆栈的顶部注册它们,可以区分它们。
当此功能结束时,刚使用完电池并创建了呼叫电池(电池算法可以执行此操作)。
但是堆栈的地址到底是什么?实际上,堆栈中仅需要初始地址,此后地址值将根据需要逐渐减小,从而减少了所需的数量。如果需要太多,电池将耗尽。
创建堆栈的人员需要了解了解充电器所需的PE文件。双击一个。
为什么EXE文件显示它正在运行?
操作系统首先分配4 GB的内存和其他初始化,并在此过程中创建一个堆栈。
全部由充电器完成。
我不太了解充电器。我从未见过一个名为Load的程序。
e因此,必须使用动态链接来实现加载程序,并且没有特定的程序。
最后,发表您的意见。您不必那么深。如果没有基地,看到基地可能会感到困惑。建议从一开始就了解操作系统的工作方式。
PD:我说的是窗户。

 
www.b31.com