我正在尝试重命名Lua中的某些函数,以便可以更轻松地调用它们。
例如,of.getHours()
应该可以被ofGetHours()
调用。
因此,在初始化Lua状态之后,我加载了一个Lua字符串,该字符串分配这些全局函数变量,如下所示:
luaL_dostring(L, "ofGetHours = of.getHours ofGetMinutes = of.getMinutes");
此方法可以正常工作,但我想使用Lua C API来执行此操作,以提高性能并提高代码的可读性。
我认为我需要使用lua_setglobal()
,但是我不知道如何正确地使用它。任何帮助将不胜感激。
答案 0 :(得分:2)
提供的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);