在C函数中将Lua表格的字符串值作为参数。

我想编写一个 C 函数,它以 Lua 表作为参数,该 Lua 表只包含字符串值,没有键。我该如何实现?我无法想出方法。在谷歌搜索中没有找到任何相关的答案。

点赞
用户106104
用户106104

“默认”表中的键是从1开始的连续整数。下面的代码:

{"hello", "world"}

与下面的代码等价:

{[1] = "hello", [2] = "world"}

你不能通过lua_getfield来访问这些条目,因为它需要一个字符串键。你可以使用“手动”的方法,即使用lua_pushnumberlua_gettable。如果L是你的lua_State*t是栈上表的索引,k是键,那么:

lua_pushnumber(L, k);
lua_gettable(L, t);

应该与下面的代码相同:

lua_getfield(L, t, k);

对于字符串键的情况。请注意,如果t是一个相对索引(负数),因为你要将另一个项推到栈上,你需要把它调整1。

2015-03-13 21:11:13