Lua スコープに 2 つの C 関数が登録されているとします。
int func1(lua_State* L)
{
int n = lua_gettop(L);
// Do sth here...
}
int func2(lua_State* L)
{
int n = lua_gettop(L);
// Do sth here...
}
func2質問:以内に電話してもfunc1いいですか?
複数の引数が に渡されると、 で返されるfunc1値が意味をなさないことがわかりました。lua_gettop()func2
たとえばfunc1、私の lua スクリプトで に3 つの引数が渡された場合、lua_gettop()は で 3 を返しfunc1、 で 3 つ以上を返しますfunc2。lua_gettop()現在の関数に渡された引数の数を返す必要があるため、これは間違いです。
新しいスタックフレームを設定するなど、呼び出す前にスタックトリックを行う必要がありますfunc2か、それとも単にこれを行うべきではありませんか?