堆栈的目的是什么?我们为什么需要它?
3 月,跳不动了?>>> 所以我现在正在学习MSIL来学习调试我的C#.NET应用程序。 我一直想知道: 堆栈的目的是什么? 只是将我的问题放在上下文中: 为什么从内存转移到堆栈或“加载?” 另一方面,为什么会从堆栈转移到内存或“存储”? 为什么不将它们全部放在内存中? 是因为它更快吗? 是因为它基于RAM吗? 为了效率? 我正在努力掌握这一点,以帮助我更深入地理解 CIL 代码。 #1楼 关于此,有一篇非常有趣/详细的维基百科文章 ,堆栈机器指令集的优点 。 我需要完全引用它,所以简单地放一个链接就更容易了。 我只想引用子标题 非常紧凑的目标代码 简单的编译器/简单的解释器 最小的处理器状态 #2楼 如果没有遵循堆栈/堆的概念并且数据被加载到随机存储器位置或者数据是从随机存储器位置存储的......它将是非常非结构化的和非托管的。 这些概念用于在预定义的结构中存储数据,以提高性能,内存使用......以及因此称为数据结构。 #3楼 请记住,当您谈论MSIL时,您正在谈论 虚拟 机的说明。 .NET中使用的VM是基于堆栈的虚拟机。 与基于寄存器的VM相反,Android操作系统中使用的 Dalvik VM 就是一个例子。 VM中的堆栈是虚拟的,由解释器或即时编译器将VM指令转换为在处理器上运行的实际代码。 在.NET的情况下几乎总是一个抖动