我正在上汇编课,我们目前正在学习堆栈。据我所知,所有被插入堆栈的东西最终都必须被弹出(清理堆栈)。为什么我们绝对需要清理堆栈?我读到它是为了防止内存泄漏,是吗?
非常感谢
最佳答案
对于给定的执行线程,只有一定数量的堆栈。
它的用途是临时保存调用函数时需要的数据(例如返回地址和传递给函数的参数)。
如果您在函数退出时不清理堆栈,您最终会耗尽堆栈空间。
此外,作为超越堆栈的一般规则,您的程序使用的任何资源(堆栈空间、堆空间、文件句柄等)都应保留尽可能短的时间,以提高整体效率。
关于assembly - 为什么我们必须清理堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9832312/