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

Lua table of string values as parameter in C function

我想制作一个 C 函数,它接受 lua table 和字符串作为参数,并且 lua table 没有任何键,只有值.我怎样才能做到这一点?我想不明白。我在 google.

中搜索时没有找到任何内容

一个table中的"default"键是从1开始的连续整数。这个:

{"hello", "world"}

等同于:

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

您不能使用 lua_getfield 访问这些条目,因为它需要一个字符串键。您可以使用 "manual" 方式,使用 lua_pushnumberlua_gettable。如果 L 是你的 lua_State*t 是堆栈上 table 的索引,并且 k 是键,那么:

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

应该做同样的事情:

lua_getfield(L, t, k);

适用于字符串键。请注意,如果 t 是一个相对索引(负数),那么因为您正在将另一个项目压入堆栈,所以您需要将其调整 1.