3 ms·
GCC can even eliminate non-tail recursion, such as with this piece of black magic: int factorial(int x) { if (x > 1) return x * factorial(x-1);
by Jach 14y ago
GCC can even eliminate non-tail recursion, such as with this piece of black magic:
int factorial(int x) {
if (x > 1) return x * factorial(x-1);
else return 1;
}
will be optimized by GCC to
int factorial(int x) {
int result = 1;
while (x > 1) result *= x--;
return result;
}
(http://ridiculousfish.com/blog/posts/will-it-optimize.html http://ridiculousfish.com/blog/posts/will-it-optimize.html)