原型: void luaL_getmetatable (lua_State *L, const char *tname); 描述: 将注册表中以tname为key的元表push到栈顶. luaL_setmetatable 原型: void luaL_setmetatable (lua_State *L, const char *tname); 描述: 将栈顶元素存储到注册表中, 它的key为tname. luaL_getsubtable 原型: int luaL_get...
lua_pushcfunction lua_pcall lua_register luaL_requiref luaopen_xxx 错误处理函数 lua_error lua_gettop lua_settop 内存管理函数 lua_newuserdata lua_getmetatable lua_setmetatable 以下是 Lua C API 中涉及到 Lua 状态管理、栈操作、全局变量操作、表操作、函数操作、模块操作、错误处理和...
setmetatable(t, mt)-- 设定mt为t的metatable getmetatable(t)-- 返回mt metatable 可以包括任何东西,metatable 特有的键一般以__开头,例如 __index 和 __newindex,它们的值一般是函数或其他 table。 我们称元表中的键为事件(event),称值为元方法(metamethod) 元方法 __index 当你通过键来访问 table 的时...
luaL_newmetatable(L, "Point"); lua_setmetatable(L, -2); // 在 Lua 脚本中使用用户数据 luaL_dostring(L, "pt = ...; print(pt.x, pt.y)"); lua_pushuserdata(L, point); lua_setglobal(L, "pt"); lua_close(L); // 关闭并销毁 Lua 状态 return 0; } lua_getmetatable int lua_ge...
lua实现接口 lua c接口 Lua5.1的常用API lua_State Lua状态机或叫Lua虚拟机,支持多线程,可创建多个状态机 typedef int (*lua_Cfunction)(lua_State* L) Lua所调用的C函数的函数原型,在C程序中需要将这种函数类型的 函数注册到Lua状态机中,此后Lua才能调用到C的函数...
C API是一个C代码与Lua进行交互的函数集,它由以下几部分构成: 1、 读写Lua全局变量的函数; 2、 调用Lua函数的函数; 3、 运行Lua代码片段的函数; 4、 注册C函数后可以在Lua中被调用的函数; 在C和LUA之间交互的关键在于一个虚拟栈(virtual stack),数据交互通过栈进行。操作数据时,首先将数据拷贝到栈上,然后...
metatable)。每个 table 和 userdata value 都有一个属于自己的 metatable,而其他每种类型的所有 value 共享一个属于本类型的 metatable。在 Lua 代码中,通过调用 setmetatable 来设置且只能设置 table 的 metatable,在 C/C++ 中调用 Lua C API 则可以设置所有 value 的 metatable。默认的情况下,...
其他类型设置元表只能通过c代码提供的API接口创建元表,比如luaL_newmetatable 2. lua层setmetatable和get...
Lua C API是一组用于扩展Lua语言功能的C语言接口。它允许开发人员在C语言中直接调用Lua的功能,并将C语言代码与Lua代码进行交互。Lua C API提供了一系列函数和数据结构,使得开发人员可以创建Lua对象、调用Lua函数、读取和修改Lua变量等。 metatable函数是Lua中用于处理元表(metatable)的函数。元表是一种特殊的表,用于...