1

文字列をパラメーターとして持つ lua テーブルを受け取る C 関数を作成したいと考えています。この lua テーブルにはキーがなく、値だけが含まれています。これどうやってするの?私はそれを把握することはできません。グーグルで検索しても何も見つかりませんでした。

4

1 に答える 1

1

テーブルの「デフォルト」キーは、1 から始まる連続した整数です。これは次のとおりです。

{"hello", "world"}

以下と同じです:

{[1] = "hello", [2] = "world"}

ではこれらのエントリにアクセスできませんlua_getfield。これは、文字列キーを取るためです。lua_pushnumberとを使用して、「手動」で行うことができますlua_gettableLがあなたの場合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 に答える