如何从C-API创建Lua表,如下所示:
TableName = {a, b, c}
如何设置表名?我只知道如何创建表格和放置值,但不知道如何设置表格的名称。
创建没有名称的表格的代码:
lua_createtable(L, 0, 3);
lua_pushnumber(L, 1);
lua_setfield(L, -2, "a");
lua_pushnumber(L, 2);
lua_setfield(L, -2, "b");
lua_pushnumber(L, 3);
lua_setfield(L, -2, "c");
答案 0 :(得分:4)
您只需要在最后添加此行
lua_setglobal(L, "TableName");
但是,您的C代码不等同于您的Lua代码。 C代码对应于此Lua代码:
TableName = { a=1, b=2, c=3 }
如果您希望C代码等效于
TableName = {"a", "b", "c"}
使用
lua_pushliteral(L, "a"); lua_rawseti(L, -2, 1);
lua_pushliteral(L, "b"); lua_rawseti(L, -2, 2);
lua_pushliteral(L, "c"); lua_rawseti(L, -2, 3);