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

Sam*_*m H 5 api lua lua-table

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

lua_newtable(L);
lua_setglobal(L,"mod");
Run Code Online (Sandbox Code Playgroud)

Lag*_*aer 7

手册说:

void lua_setfield (lua_State *L, int index, const char *k);
Run Code Online (Sandbox Code Playgroud)

是等价于t[k] = v,其中t是给定有效索引v处的值,并且是堆栈顶部的值.

此函数弹出堆栈中的值.

因此,更准确地说:将任何想要添加到堆栈中的内容推送,然后调用lua_setfield.例如:

lua_pushnumber( L, 42 );
lua_setfield( L, -2, "answer_to_life_universe_and_rest" )
Run Code Online (Sandbox Code Playgroud)

这会将带有值的字段"answer_to_life ..." 42插入表中.