5

これが私がこれまでに持っているものです...それは「mod」と呼ばれるグローバルテーブルを作成しますが、テーブルにインデックスを追加できないようです...

lua_newtable(L);
lua_setglobal(L,"mod");
4

1 に答える 1

7

マニュアルには次のように書かれています。

void lua_setfield (lua_State *L, int index, const char *k);

と同等のことを行いますt[k] = v。ここtで、は指定された有効なインデックスvの値であり、はスタックの最上位の値です。

この関数は、スタックから値をポップします。

つまり、より正確には、スタックに追加したいものをプッシュしてから、を呼び出しますlua_setfield。例えば:

lua_pushnumber( L, 42 );
lua_setfield( L, -2, "answer_to_life_universe_and_rest" )

これにより、値を含むフィールド「answer_to_life...」が42テーブルに挿入されます。

于 2010-11-18T23:33:22.297 に答える