Справочное руководство по языку Lua 5.1 :: 3.2 - Псевдо-индексы



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 не является допустимым индексом.