如何在Lua中创建表,然后从C API添加值?

时间:2010-11-18 23:31:01

标签: api lua lua-table

这是我到目前为止所做的...它创建了一个名为“mod”的全局表,但我似乎无法在表中添加索引......

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

1 个答案:

答案 0 :(得分:7)

manual说:

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 ...“插入表格中。