lua从c api检查堆栈上的表

时间:2015-05-01 10:44:41

标签: c lua

我可以找到很多信息如何从C api中的堆栈中检索lua中的表的值,但是我遇到了一个不同的问题 - 当我的函数被调用而没有表传递时我的程序没有任何压缩警告。

这引出了我以下问题,有没有办法从C api检查堆栈中表的存在?类似于lua_checkstring(L,)?

1 个答案:

答案 0 :(得分:2)

我在调查C lua API时自己找到了答案。

用于调查堆栈的正确函数是is函数,因此我应该使用lua_isstring(L,offset)而不是Lua_checkstring。存在lua_istable的替代方案。

正如siffiejoe所建议的那样,也可以使用luaL_checktype(L,1,LUA_TTABLE),区别在于检查类型会在解析器中出现错误。