どのように私はCのAPIからの値を追加し、Luaのテーブルを作成することができますか?
質問
ここで私がこれまで持っているものだ...それは「モッズ」と呼ばれる世界的なテーブルを作成しますが、私は、テーブルにインデックスを追加するように見えることはできません...
lua_newtable(L);
lua_setglobal(L,"mod");
解決
マニュアルのは言う:
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" )
テーブルに値42
と、この挿入フィールド "answer_to_life ..." ます。
所属していません StackOverflow