5

当编写一个将表压入堆栈作为返回值给 Lua 调用者的 C 函数时,它应该在 C 上下文中返回什么?我知道您应该返回要传递回 Lua 调用者的值的数量,但是对于表,表引用是 1,还是需要考虑表的内容?

我正在使用的回传表的方法在“推送一个 Lua 表”中展示。

4

1 回答 1

6

你只直接返回一个 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-29T23:59:29.313 回答