lua 从 c api 检查堆栈上的 table
lua check for table on stack from c api
我可以找到很多关于如何从 C api 中的堆栈检索 lua 中 table 的值的信息,但是我遇到了一些不同的问题 -当我的函数在没有 table 的情况下被调用时,我的程序在没有任何警告的情况下崩溃了。
这让我想到了以下问题,是否有任何方法可以从 C api 检查堆栈上是否存在 table?类似于 lua_checkstring(L, )?
我自己在查C的过程中找到了答案lua API.
用于调查堆栈的正确函数是 is 函数,因此我应该使用 lua_isstring(L, offset) 而不是 Lua_checkstring。 lua_istable 的替代方案存在。
正如 siffiejoe 所建议的那样,也可以使用 luaL_checktype(L, 1, LUA_TTABLE),区别在于检查类型会在解析器中引发错误。
我可以找到很多关于如何从 C api 中的堆栈检索 lua 中 table 的值的信息,但是我遇到了一些不同的问题 -当我的函数在没有 table 的情况下被调用时,我的程序在没有任何警告的情况下崩溃了。
这让我想到了以下问题,是否有任何方法可以从 C api 检查堆栈上是否存在 table?类似于 lua_checkstring(L, )?
我自己在查C的过程中找到了答案lua API.
用于调查堆栈的正确函数是 is 函数,因此我应该使用 lua_isstring(L, offset) 而不是 Lua_checkstring。 lua_istable 的替代方案存在。
正如 siffiejoe 所建议的那样,也可以使用 luaL_checktype(L, 1, LUA_TTABLE),区别在于检查类型会在解析器中引发错误。