文字列をパラメーターとして持つ lua テーブルを受け取る C 関数を作成したいと考えています。この lua テーブルにはキーがなく、値だけが含まれています。これどうやってするの?私はそれを把握することはできません。グーグルで検索しても何も見つかりませんでした。
1 に答える
1
テーブルの「デフォルト」キーは、1 から始まる連続した整数です。これは次のとおりです。
{"hello", "world"}
以下と同じです:
{[1] = "hello", [2] = "world"}
ではこれらのエントリにアクセスできませんlua_getfield
。これは、文字列キーを取るためです。lua_pushnumber
とを使用して、「手動」で行うことができますlua_gettable
。L
があなたの場合lua_State*
、t
はスタック上のテーブルのインデックスであり、k
はキーです。
lua_pushnumber(L, k);
lua_gettable(L, t);
次と同じことを行う必要があります。
lua_getfield(L, t, k);
文字列キーに対して行います。ift
が相対インデックス (負の数) の場合、別のアイテムをスタックにプッシュしているため、1 ずつ調整する必要があることに注意してください。
于 2015-03-13T21:11:13.500 に答える