1
- Luaの関数を呼び出す++のlua関数の戻り値2番号
- C:fooの
- 私はそれが関数foo(lua_pop(L、2);)の戻り値をポップする入用のかどうかわかりません。
- 私はそれを行う方法と理由を教えてください。どうもありがとう。このよう
部品コード:cはlua関数を呼び出し、戻り値はスタックにあります。
// lua function
function foo(a, b)
return a+b, a-b;
end
// c++
lua_getglobal(L,"foo"); // push function
lua_pushnumber(L,1); // push argument 1
lua_pushnumber(L,2); // push argument 2
error=lua_pcall(L, 2, 2, 0);
if (!error) {
printf("return:%s\n",lua_tostring(L,-1));
printf("return:%s\n",lua_tostring(L,-2));
// is this needful
lua_pop(L,2);
}
また、エラーが発生した場合は、エラーオブジェクト – moteus
を実際にポップする必要があります。あなたが怠け者であれば、lua_pop(l、lua_gettop(l))は残りのすべてのエントリをスタックからポップします。 –
'lua_settop(L、0)'はスタックをクリアするのにもっと慣れているようです – Adam