11Fermer13
SallyLe 11/05/2006 à 13:51
*nils*nils* $ cat > test.c
int g(int x);
int f(int x) {return (x == 0 ? x : g(x));}
int g(int x) {return f(x - 1);}
int main() {return g(1000000000);}
*nils*nils* $ gcc -O2 test.c
*nils*nils* $ ./a.out
*nils*nils* $
Donc il le fait ^^ (par contre en -O simple il sature la mémoire en quelques secondes (mais ça segfaulte pas, enfin j'ai pas attendu qu'il sature aussi le swap hein grin))
(et accessoirement les warnings devraient être activés par défaut, je comprenais pas pourquoi ça terminait pas avec "x = 0" mur)

Sinon, pour les fonctions void, ben on pourrait les mettre en argument du return justement pour spécifier qu'on veut l'optimisation, ça serait une manière de marquer l'appel spécialement comme tu le proposais en ./9 mais sans inventer un nouveau truc ^^