被Lua调用的C函数如果需要返回一个表,应该返回什么内容?

当编写一个 C 函数作为返回值将表格推送到堆栈中,供 Lua 调用者使用时,在 C 上下文中应该返回什么?我知道你应该返回传回给 Lua 调用者的值的数量,但在表格的情况下,是表格引用的 1,还是你需要考虑表格的内容?

我使用的传回表格的方法在“推送 Lua 表格”中有所说明。

点赞
用户221955
用户221955

你只直接返回了一个 Lua 值,所以你的 C 函数应该返回 1。

像这样:

int my_table( luaState * L) {
  lua_newtable(L);
  lua_pushstring(L, "a_key");
  lua_pushstring(L, "a_value");
  lua_settable(L, -3);
  return 1;
}
2013-05-29 23:59:29