为什么我们需要.NET中的堆栈?

时间:2019-11-18 13:08:56

标签: .net clr

如果最后的堆和堆栈仍然存储在PC的RAM中,为什么我们完全需要堆栈? 堆栈的灵活性较差,而我们所需的一切都可以在堆上构建。那么,出于什么原因我们在dotnet虚拟机中使用堆栈?

1 个答案:

答案 0 :(得分:2)

IL(又名MSIL或CIL)是基于堆栈的语言。通常将其编译为x86,在其中将堆栈实现在硬件(SP寄存器)的内部。

因此,堆栈是IL的重要组成部分。

但是也许您想问有关C#的问题?在那里,栈被认为是“实现细节”,您可以并且应该在大多数时间忽略它们。但是您仍然会在调试器和堆栈跟踪中看到它。