3.2 – Размер стека
При использовании Lua API вы должны сами предупреждать возможные ошибки исполнения. Иногда, возникает
необходимость контроля за переполнением стека. Для получения размера стека
используйте функцию lua_checkstack.
Для вызова из Lua кода на C необходимо иметь в наличии свободной памяти по крайней мере на LUA_MINSTACK позиций стека. LUA_MINSTACK по умолчанию равно 20. Таким образом, вам не придется заботится о стеке (если только ваш код не помещает туда значения в цикле).
Большинство функций принимают любое количество входных параметров, оно
ограничено только размером стека. Если размера стека не хватает, его можно
увеличить функцией lua_checkstack.
Все допустимые индексы стека удовлетворяют условию:
(index < 0 && abs(index) <= top) ||
(index > 0 && index <= stackspace)
Заметим, что 0 не является допустимым индексом.
|