我想从C函数中获取Lua中的几个参数。 我试图在lua堆栈上推几个参数:
static int myFunc(lua_State *state)
{
lua_pushnumber(state, 1);
lua_pushnumber(state, 2);
lua_pushnumber(state, 3);
return 1;
}
并在Lua中调用它:
local a,b,c = myFunc()
不幸的是,b和c值是零。我不想为我需要的每个值编写函数,而是利用Luas函数从函数中检索多个参数。
答案 0 :(得分:6)
C函数的返回值是返回的值的数量。
将其更改为return 3;
,您就可以了。
在这里,请参考 Lua中的编程:
static int l_sin (lua_State *L) {
double d = lua_tonumber(L, 1); /* get argument */
lua_pushnumber(L, sin(d)); /* push result */
return 1; /* number of results */
}