4.2 – 栈大小
当你使用 Lua API 时,就有责任保证做恰当的调用。 特别需要注意的是,你有责任控制不要堆栈溢出。你可以使用 lua_checkstack
这个函数来扩大可用堆栈的尺寸。
无论何时 Lua 调用 C ,它都只保证至少有LUA_MINSTACK
这么多的堆栈空间可以使用。LUA_MINSTACK
一般被定义为 20 ,因此,只要你不是不断的把数据压栈,通常你不用关心堆栈大小。
当你调用一个 Lua 函数却没有指定要接收多少个返回值时(参见 lua_call
),Lua 可以保证栈一定有足够的空间来接收所有的返回值,但不保证此外留有额外的空间。因此,在做了一次这样的调用后,如果你需要继续压栈,则需要使用 lua_checkstack
。