标签: .net clr
如果最后的堆和堆栈仍然存储在PC的RAM中,为什么我们完全需要堆栈? 堆栈的灵活性较差,而我们所需的一切都可以在堆上构建。那么,出于什么原因我们在dotnet虚拟机中使用堆栈?
答案 0 :(得分:2)
IL(又名MSIL或CIL)是基于堆栈的语言。通常将其编译为x86,在其中将堆栈实现在硬件(SP寄存器)的内部。
因此,堆栈是IL的重要组成部分。
但是也许您想问有关C#的问题?在那里,栈被认为是“实现细节”,您可以并且应该在大多数时间忽略它们。但是您仍然会在调试器和堆栈跟踪中看到它。