这2个词都有“堆栈”的含义,区别:
heap:堆。用户分配的内存叫堆。
stack:栈。系统分配的内存叫栈。
例如:
local i = 0
如果是写在一个函数里,i占用的内存就是在栈上,因为是系统分配给i的。
如果是写在一个文件里,不是在(封闭的)函数里,i占用的内存应该是在全局堆上,不过应该也是系统分配给i的,不需要用户分配。
LUA中,用户应该不能像C++那样new出来一段内存在堆上。
所以在LUA中,其实模糊了堆和栈的关系,只能说函数里的local通常是在栈上的,至于哪些数据是在堆上,就不太容易知道了。
我印象中没接触过“全局栈”,有知道的大神,欢迎留言指教~
散装英语自学小护士——“堆栈”用法
最新推荐文章于 2021-02-28 11:14:02 发布