Как узнать количество возвращаемых значений функции Lua из C?
luaL_loadstring(L, "return 3, 4, 5");
int R = lua_pcall(L, 0, 3, 0);
Lua может возвращать несколько значений. Но в настоящее время мне приходится жестко указывать количество возвращаемых значений. Могу ли я узнать счет во время выполнения динамически?
Ответы
Ответ 1
Да.
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
для определения верхней части стека до и после вызова.