lua与c++数据交换之表和数组

发布于 2021年 07月 02日 09:55

一 数组的操作 数组其实是一种特殊的表格。 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 二 表格