从luc函数返回多个参数

从luc函数返回多个参数,c,lua,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值为零。我不想为我需要的每个值编写一个函数

我想从一个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的功能从一个函数中检索几个参数。

C函数的返回值是返回的值的数量

将其更改为
返回3你可以走了

这里有一个来自Lua编程的参考:


哦,谢谢你。我认为如果函数调用正常,这只是一种状态。@Objective我的拙劣建议是开始检查引用,而不是下次猜测:)。
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 */
}