从lua C函数返回几个参数

时间:2013-10-23 14:31:10

标签: c lua

我想从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函数从函数中检索多个参数。

1 个答案:

答案 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 */
}