How can I know return value count of a Lua function from C?
问题 luaL_loadstring(L, "return 3, 4, 5"); int R = lua_pcall(L, 0, 3, 0); Lua can return multiple values. But currently I have to hardcode the count of the return values. Can I know the count at runtime dynamically? 回答1: Yes. int top = lua_gettop(L); luaL_loadstring(L, "return 3, 4, 5"); int R = lua_pcall(L, 0, LUA_MULTRET, 0); int nresults = lua_gettop(L) - top; You use LUA_MULTRET , and then use lua_gettop to figure out the top of the stack before and after the call. 来源: https://stackoverflow