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