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

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