如何在LUA C API中分配全局LUA函数变量

How to assign global Lua function variables in Lua C API?

本文关键字:LUA 全局 分配 函数 变量 API      更新时间:2023-10-16

我正在尝试重命名lua中的某些功能,以便我更容易地称其为称呼。

例如,of.getHours()函数应通过ofGetHours()调用。

因此,在初始化LUA状态后,我加载了一个LUA字符串,该字符串分配了这些全局函数变量如下:

luaL_dostring(L, "ofGetHours = of.getHours ofGetMinutes = of.getMinutes");

此方法正常工作,但我想使用Lua C API来提高性能并使我的代码更可读。

我认为我需要使用lua_setglobal(),但我不知道如何正确执行此操作。任何帮助将不胜感激。

提供os值是全局表,您的代码可能看起来像这样:

lua_getglobal(L, "of");
lua_getfield(L, -1, "getMinutes");
lua_setglobal(L, "ofGetMinutes");
lua_getfield(L, -1, "getHours");
lua_setglobal(L, "ofGetHours");
lua_pop(L, 1);