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_pushnumber
和 lua_gettable
。如果 L
是你的 lua_State*
,t
是堆栈上 table 的索引,并且 k
是键,那么:
lua_pushnumber(L, k);
lua_gettable(L, t);
应该做同样的事情:
lua_getfield(L, t, k);
适用于字符串键。请注意,如果 t
是一个相对索引(负数),那么因为您正在将另一个项目压入堆栈,所以您需要将其调整 1.
我想制作一个 C 函数,它接受 lua table 和字符串作为参数,并且 lua table 没有任何键,只有值.我怎样才能做到这一点?我想不明白。我在 google.
中搜索时没有找到任何内容一个table中的"default"键是从1开始的连续整数。这个:
{"hello", "world"}
等同于:
{[1] = "hello", [2] = "world"}
您不能使用 lua_getfield
访问这些条目,因为它需要一个字符串键。您可以使用 "manual" 方式,使用 lua_pushnumber
和 lua_gettable
。如果 L
是你的 lua_State*
,t
是堆栈上 table 的索引,并且 k
是键,那么:
lua_pushnumber(L, k);
lua_gettable(L, t);
应该做同样的事情:
lua_getfield(L, t, k);
适用于字符串键。请注意,如果 t
是一个相对索引(负数),那么因为您正在将另一个项目压入堆栈,所以您需要将其调整 1.