c++读取lua中的table

c++代码

static int l_sin(lua_State *tolua_S){
    std::vector<int> agr1;
    lua_pushnil(tolua_S);

    int index = 1;
    while (lua_next(tolua_S, index))
    {
        lua_pushvalue(tolua_S, -2);
        int key = lua_tointeger(tolua_S, -1);
        int value = lua_tointeger(tolua_S, -2);
        agr1.push_back(value);
        lua_pop(tolua_S, 2);
    }

    lua_settop(tolua_S, 1);

    return 0;
}

注册给lua调用:

tolua_function(tolua_S, "mysin", l_sin);

lua 代码:

local t = {
        10, 20, 30, 40
}
mysin(t)

执行以后, std::vector agr1 中存放了table的数据。

你可能感兴趣的:(Lua)