欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

c++遍歷lua table示例

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

c/c++從棧上獲取Lua壓棧過來的table數(shù)據(jù)

復(fù)制代碼 代碼如下:

map<string,string> traverse_table(lua_State *L, int index)
{
 map<string,string> data;
    lua_pushnil(L);
    // 現(xiàn)在的棧:-1 => nil; index => table
 index = index - 1;
    while (lua_next(L, index))
    {
        // 現(xiàn)在的棧:-1 => value; -2 => key; index => table
        // 拷貝一份 key 到棧頂,然后對它做 lua_tostring 就不會改變原始的 key 值了
        lua_pushvalue(L, -2);
        // 現(xiàn)在的棧:-1 => key; -2 => value; -3 => key; index => table

        const char* key = lua_tostring(L, -1);
        const char* value = lua_tostring(L, -2);

  data[key]=value;
        // 彈出 value 和拷貝的 key,留下原始的 key 作為下一次 lua_next 的參數(shù)
        lua_pop(L, 2);
        // 現(xiàn)在的棧:-1 => key; index => table
    }
    // 現(xiàn)在的棧:index => table (最后 lua_next 返回 0 的時候它已經(jīng)把上一次留下的 key 給彈出了)
    // 所以棧已經(jīng)恢復(fù)到進入這個函數(shù)時的狀態(tài)
 return data;
}

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有