【问题标题】:return several parameter from lua C function从 lua C 函数返回几个参数
【发布时间】:2013-10-23 14:31:09
【问题描述】:

我想从 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 lua


    【解决方案1】:

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

    【讨论】:

    • 哦,谢谢。如果函数调用没问题,我认为这只是一个状态。
    • @Objective 我的谦虚建议是下次开始检查参考文献而不是猜测:)。
    猜你喜欢
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 2011-10-05
    • 2018-09-16
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多