3.3 – Псевдо-индексы
За исключением особых случаев, любая параметризованная функция Lua может
быть вызвана с псевдо-индексами. (Так как параметры передаются в функции через
стек, каждому входному параметру соответствует индекс стека. Здесь речь идет и
мнимых индексах стека – фактически это специальные переменные Lua, с которыми можно работать как с
элементами стека). Это переменные Lua, доступные из С-кода, но не находящиеся в стеке. Псевдо-индексы
используются для доступа к окружению потока, окружению функции, регистру и внешним
значениям (§3.4).
Окружение потока (пространство жизни глобальных переменных) всегда доступно
посредством псевдо-индекса LUA_GLOBALSINDEX.
Окружение запущенной С-функции – это всегда псевдо-индекс LUA_ENVIRONINDEX.
Для доступа и изменения значения глобальных переменных вы можете
использовать обычную таблицу операций над таблицей окружения. Например, доступа
к значению глобальной переменной:
lua_getfield(L, LUA_GLOBALSINDEX, varname);
|