lua_pushvalue(lua_state,-2); std::cout<<"show lua_pushvalue(lua_state,-2) stack:"<<std::endl; luaShowStackFromTop2Bot(lua_state); std::cout<<std::endl; lua_remove(lua_state,2); std::cout<<"show lua_remove(lua_state,2) stack:"<<std::endl; luaShowStackFromTop2Bot(lua_state...
void lua_pushvalue (lua_State *L, int index); Pushes a copy of the element at the given valid index onto the stack 如上所述, lua_pushvalue(L, -4) 并不是往栈顶插入元素-4, 而是把在栈中位置为-4的元素copy之后插入于栈顶中!!!
key) return "不存在的元素" end 在 C/C++ 中,可以使用 luaL_getmetafield() 函数来获取元表中的 __index 方法,如下所示: int index(lua_State* L) { lua_getmetatable(L, -2); lua_pushvalue(L, -2); lua_rawget(L, -2); if (lua_isnil(L, -1)) { // 元素不存在,调用 __index 方法...
lua_pushvalue函数Notice 2013-04-15 16:17 −... Nick Yang 0 5993 Lua中调用C函数 2014-07-29 23:25 −Lua利用一个虚拟的堆栈来给C传递值或从C获取值。每当Lua调用C函数,都会获得一个新的堆栈,该堆栈初始包含所有的调用C函数所需要的参数值(Lua传给C函数的调用实参),并且C函数执行完毕后,会把返回...