Lua - 常用的 C API


Lua - 常用的 C API 基础概念 states Lua连接库是完全可重入的,因为它没有全局变量。Lua解释器的整个state(如全局变量、堆栈等)都存储在一个结构类型为LuaState动态分配的对象里。指向这一对象的指针必须作为第一个参数传递给所有连接库的API,除了用来生成一个Lua state的函数——luaopen。在调用所有的API函数之前,你必须先用luaopen以生成一个state: luaState luaopen(void); 可以通过调用luaclose来释放一个通过luaopen生成的state: void luaclose (luaState L); 这一函数销毁给定的LuaState中的所有对象并释放state所占用的动态内存(如果有必要的话将通过调用对应的垃...

Lua - 常用的 C API 基础概念 states Lua连接库是完全可重入的,因为它没有全局变量。Lua解释器的整个state(如全局变量、堆栈等)都存储在一个结构类型为LuaState动态分配的对象里。指向这一对象的指针必须作为第一个参数传递给所有连接库的API,除了用来生成一个Lua state的函数——luaopen。在调用所有的API函数之前,你必须先用luaopen以生成一个state: luaState luaopen(void); 可以通过调用luaclose来释放一个通过luaopen生成的state: void luaclose (luaState L); 这一函数销毁给定的LuaState中的所有对象并释放state所占用的动态内存(如果有必要的话将通过调用对应的垃圾收集元方法来完成),在某些平台上,你不必调用这个函数,因为当宿主程序退出时会释放所有的资源,换句话说,长期运行的程序,如守护进程或web服务器,应尽快释放state所占的资源,以避免其过于庞大。 堆栈与索引 Lua使用虚拟堆栈机制和C程序互相传值,所有的堆栈中的元素都可以看作一个Lua值(如nil...

发布者: 作者: 转发
评论区 (0)
U