Как я могу создать таблицу в Lua, а затем добавить значения из C API? - PullRequest
5 голосов
/ 19 ноября 2010

Вот что у меня есть ... Он создает глобальную таблицу с именем "mod", но я не могу добавить индексы в таблицу ...

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

1 Ответ

7 голосов
/ 19 ноября 2010

В руководстве написано:

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 в таблицу.

...