longjmp() erases recursion level
gwyn at BRL-VLD.ARPA
gwyn at BRL-VLD.ARPA
Sun Aug 26 20:31:46 AEST 1984
From: Doug Gwyn (VLD/VMB) <gwyn at BRL-VLD.ARPA>
I don't see how using setjmp/longjmp to short-circuit recursion is
any "cleaner" than the following:
main()
{ ...
sub();
...
}
sub()
{ static int level = 0;
...
if ( ++level <= 1 )
sub();
--level;
}
This method also lets you select a more general "recursion depth",
useful for example in searching game trees, and sub() can return
a value to its parent if required (as it usually would be in a
practical application).
More information about the Comp.lang.c
mailing list