您的位置:首页 > 编程语言 > Lua

C++怎么传递一个数组到LUA

2017-08-11 18:49 776 查看
C++怎么传递一个数组到LUA

数组的操作,参考实例如下:

数组其实是一种特殊的表格。

int LuaArray(lua_State* L)

{

    lua_newtable(L);                    //新建一个表,并压入栈顶

    lua_pushnumber(L,-1);            //这行和下面一行,没搞懂为什么需要这样,但如果不执行,lua中获取的数据就会出错

    lua_rawseti(L,-2,0);

    int array[]={11,22,33,44,55};

    for(int n=0;n<sizeof(array)/sizeof(int);n++)

    {

        lua_pushinteger(L,array
);        //将数组的数据入栈

        lua_rawseti(L,-2,n+1);                //将刚刚入栈的数据设置为数组的第n+1个数据,同时这个数据会自动从栈里pop

    }

    return 1;        //push进栈的数据都在设置数组时自动pop了,所以现在栈里只有1个数据,就是最开始push的表

}

lua获取刚刚传的表格

array=luaArray()

for i,v in ipairs(array)

    do

        print(v)

end

============================================================

array=LuaArray()

for i,v in ipairs(array) do

 Output(v)

end

Output(#array);

for i=1,#array do

 Output(array[i])

end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: