五、辅助库

辅助库 提供了一些便捷函数,方便在 C 中为 Lua 编程。基础 API 提供了 C 和 Lua 交互用的主要函数,而辅助库则为一些常见的任务提供了高阶函数。

所有辅助库中的函数和类型都定义在头文件 lauxlib.h 中,它们均带有前缀 luaL_

辅助库中的所有函数都基于基础 API 实现。故而它们并没有提供任何基础 API 实现不了的功能。虽然如此,使用辅助库可以让你的代码更为健壮。

一些辅助库函数会在内部使用一些额外的栈空间。当辅助库使用的栈空间少于五个时,它们不去检查栈大小;而是简单的假设栈够用。

一些辅助库中的函数用于检查 C 函数的参数。因为错误信息格式化为指代参数(例如,"bad argument #1"),你就不要把这些函数用于参数之外的值了。

如果检查无法通过,luaL_check* 这些函数一定会抛出错误。