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

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

二 表格
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章