Как назначить глобальные переменные функции Lua в Lua C API? - PullRequest
1 голос
/ 21 мая 2019

Я пытаюсь переименовать некоторые функции в Lua, чтобы их было проще вызывать.

Например, функция of.getHours() должна вызываться ofGetHours().

Итак, после инициализации состояния Lua я загрузил строку Lua, которая присваивает этим глобальным переменным функции, как показано ниже:

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

Этот метод работает нормально, но я хотел бы сделать это, используя Lua C API, чтобы повысить производительность и сделать мой код более читабельным.

Я думаю, мне нужно использовать lua_setglobal(), но я не знаю, как правильно это сделать. Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 21 мая 2019

Если значение 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...