Lua:从C函数调用中读取表格参数

我对 Lua 的 C API 中处理表格的方法感到非常不确定。我目前正在开发的接口要求我在提供给我的 C 函数中读取表格的内容:

example.lua:

myVector2 = {["x"]=20, ["y"]=30}
setSomePosition(myVector2)

我注册为 "setSomePosition" 的 C 函数:

static int lSetSomePosition(lua_State *L)
{
    //参数数量
    if(lua_gettop(L) != 1)
    {
        //错误处理
        return 0;
    }
    //需要你帮忙完成以下部分:
    //提取索引为 "x" 和 "y" 的表格值

    return 0;
}

我知道处理表格的方法有几种,有时需要知道索引,而我是需要知道索引的。我现在只是有些困惑,越是研究,越是困惑。可能是因为我不知道如何用正确的术语描述我想要的东西。

真的很感激一些好的注释示例代码,告诉我如何填补我的 c 函数中的空缺 :)

(如果你有易于理解的此主题的指南,不要介意评论)

点赞
用户1424244
用户1424244
lua_getfield(L, 1, "x") // 将 t["x"] 的值压入堆栈
lua_tonumber(L, -1) // 返回堆栈顶部的值
lua_getfield(L, 1, "y") // 将 t["y"] 的值压入堆栈
lua_tonumber(L, -1) // 返回堆栈顶部的值
2014-11-02 14:17:40