>>144
>>144
末尾再帰でぐぐりなさい

具体的には、関数 f の一番初めにラベル START を作って、

f(a, f(a, b-1, c, 0), c-1, 0)

の呼び出しなら

b = f(a, b-1, c, 0);
c--;
d = 0;
goto START;

に変換
こうすれば呼び出しネスト数が稼げる
……稼げてないような気もしないでもない

これ以外の方法だと、スタックをヒープか2次記憶上に作る方法