Lua API (basic stack manipulation)

一:LUA_API int (lua_gettop)(lua_State* L)

用途:返回栈顶元素的索引

由于索引是从1开始,所以这个值就等于栈上的元素数量, 0则表示空

二:LUA_API void (lua_settop)(lua_State* L, int idx)

用途:将堆栈的栈顶设为idx这个索引。如果新的栈顶比原来的大,超出部分的新元素将被填为nil。如果index为 0 ,把栈上所有元素移除

Lua API (basic stack manipulation)_第1张图片

三:LUA_API void (lua_pushvalue)(lua_State* L, int idx)

用途: 找到Idx位置的value,压入栈顶

Lua API (basic stack manipulation)_第2张图片

四:LUA_API void (lua_insert)(lua_State* L, int idx)

用途:找到idx索引的位置,将栈顶的value放在这个位置

 会引发idx位置以上的元素向上移动一个位置,以便空出idx的位置

Lua API (basic stack manipulation)_第3张图片

五:LUA_API void (lua_remove)(lua_State* L, int idx)

用途:找到idx索引的位置,删除这个位置上的value

会引发idx以上的元素向下依次移动一个位置,栈减少一个元素


Lua API (basic stack manipulation)_第4张图片

六:LUA_API void (lua_replace)(lua_State* L, int idx)

用途:将id索引的位置设置为栈顶的value, 然后移除栈顶value

Lua API (basic stack manipulation)_第5张图片

七:LUA_API int (lua_checkstack) (lua_State *L, int sz)

八:LUA_API void (lua_xmove) (lua_State *from, lua_State *to, int n)

你可能感兴趣的:(Lua API (basic stack manipulation))