Lua表的字符串值作为C函数中的参数

时间:2015-03-12 21:46:27

标签: c arrays lua lua-table lua-api

我想创建一个C函数,它接受带有字符串作为参数的lua表,而lua表没有任何键,只有值。我怎样才能做到这一点?我想不明白。当我在谷歌搜索时,我没有找到任何东西。

1 个答案:

答案 0 :(得分:1)

"默认"表中的键是从1开始的连续整数。这个:

{"hello", "world"}

与:

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

您无法使用lua_getfield访问这些条目,因为它会使用字符串键。你可以做"手册"方式,lua_pushnumberlua_gettable。如果Llua_State*t是堆栈中表格的索引,并且k是密钥,则:

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

应该做同样的事情:

lua_getfield(L, t, k);

用于字符串键。请注意,如果t是相对索引(负数),那么因为您要将其他项目推入堆栈,您需要将其调整为1。