1 / 12
文档名称:

lua 5.1API.doc

格式:doc   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

lua 5.1API.doc

上传人:ffy51856fy 2016/6/5 文件大小:0 KB

下载得到文件列表

lua 5.1API.doc

相关文档

文档介绍

文档介绍:lua 中的 API 函数 lua_State* luaL_newstate() Lua 脚本的编译执行是相互独立的,在不同的线程上执行。通过 luaL_newstate() 函数可以申请一个虚拟机,返回指针类型 lua_State 。今后其他所有 Lua Api 函数的调用都需要此指针作为第一参数,用来指定某个虚拟机。 lua_State* L= luaL_newstate(); ----------------------------------------------------------- ---------------------------- void lua_close(lua_State *L) 销毁指定 Lua 状态机中的所有对象(如果有垃圾收集相关的元方法的话, 会调用它们), 并且释放状态机中使用的所有动态内存。在一些平台上,你可以不必调用这个函数,因为当宿主程序结束的时候, 所有的资源就自然被释放掉了。另一方面, 长期运行的程序, 比如一个后台程序或是一个 web 服务器,当不再需要它们的时候就应该释放掉相关状态机。这样可以避免状态机扩张的过大。 lua_close(L); ----------------------------------------------------------- ---------------------------- lua_State* lua_newthread(lua_State *L) ----------------------------------------------------------- ---------------------------- int lua_gettop(lua_State *L) 取得栈的高度 for (int i= 0;i< 10; ++i) lua_pushnumber(L, i); printf("%d", lua_gettop(L)); --> 10 ----------------------------------------------------------- ---------------------------- void lua_settop(lua_State *L, int idx) 设置栈的高度, 如果之前的栈顶比新设置的更高, 那么高出来的元素会被丢弃,反之压入 nil 来补足大小。另外, Lua 提供了一个宏,用来从栈中弹出 n 个元素: #define lua_pop(L, n) lua_settop(L, -(n)-1) for (int i= 0;i< 10; ++i) lua_pushnumber(L, i); lua_settop(L, 5) printf("%d", lua_gettop(L)); --> 5 ----------------------------------------------------------- ---------------------------- void lua_pushvalue(lua_State *L, int idx) 将指定索引上值的副本压入栈 for (int i= 1;i <= 3; ++i) lua_pushnumber(i); 栈中元素:(从下往上) 123 lua_pushvalue(L, 2) 栈中元素:(从下往上) 1232 ----------------------------------------------------------- ---------------------------- void lua_remove(lua_State *L, int idx) 删除指定索引上的元素,并将该位置之上的所有元素下移以补空缺 for (int i= 1;i <= 3; ++i) lua_pushnumber(i); 栈中元素:(从下往上) 123 lua_remove(L, 2) 栈中元素:(从下往上) 13 ----------------------------------------------------------- ---------------------------- void lua_insert(lua_State *L, int idx) 移指定位置上的所有元素以开辟一个空间槽的空间, 然后将栈顶元素移到该位置 for (int i= 1;i <= 5; ++i) lua_pushnumber(i); 栈中元素:(从下往上) 12345 lua_insert(L, 3) 栈中元素:(从下往上) 12543 ---------------------------