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

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[n]);        //将数组的数据入栈
        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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值