如何创建名为C-API的Lua表

如何创建名为C-API的Lua表,lua,lua-table,lua-api,lua-c++-connection,Lua,Lua Table,Lua Api,Lua C++ Connection,如何从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

如何从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");

您只需在末尾添加这一行

lua_setglobal(L, "TableName");
但是,您的C代码并不等同于您的Lua代码。C代码对应于此Lua代码:

TableName = { a=1, b=2, c=3 }
如果你想要C代码等价于

TableName = {"a", "b", "c"}
使用


谢谢我怎样才能把桌子摆在桌子上?像这样的a={[“b”]={[“c”]={[“d”]={[“e”]=“好”}}}?印刷品(a.b.c.d.e);为了清楚起见,您询问的是一个名为TableName的变量。与任何Lua值一样,表没有名称。
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);