堆栈如何在Windows和Linux上运行?

时间:2011-07-21 14:32:59

标签: windows linux stack alloca

我刚看到windows程序在函数入口上调用_alloca来增加堆栈,如果它们在堆栈上需要超过4k的话。我说每次看到防护页面时,窗口都会为堆栈分配一个新页面,因此_alloca以4k步骤访问堆栈以分配空间。

我还读到这只适用于windows。如果linux(或其他ose)不需要_alloca

,它如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

Linux依赖于高度优化的页面错误处理,所以会发生的事情是程序只是在堆栈上推送内容而页面错误处理程序会动态扩展堆栈。