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
か、それとも単にこれを行うべきではありませんか?