luaL_loadstring(L, "return 3, 4, 5");
int R = lua_pcall(L, 0, 3, 0);
Lua可以返回多个值。但是目前我必须硬编码返回值的计数。我可以动态地知道运行时的计数吗?
答案 0 :(得分:18)
是
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;
您使用LUA_MULTRET
,然后使用lua_gettop
找出通话前后的堆栈顶部。