Optimisation des boucles

Commençons fort !
Condition de boucle
int main() { int a = 42; int b = 72; int t = 0; for (int i = 0; i < a + b; i++) { t++; } return 0; }
Sans optimisation de la part de gcc, le programme va effectuer 114 tour de boucle en recalculant la somme a + b
à chaque tour de boucle.
En spécifiant à gcc d'optimiser ce code, la boucle va tout simple être supprimé.
Nous pouvons alors demander à gcc d'afficher le résultat. Il ne faut pas sous estimer gcc, qui aura vu que le résultat est constant et qui supprimera quand même la boucle, et affichera un résultat prés calculé.
Bis
Dans la vraie vie on fait rarement de boucles comme-ca, le resultat n'est pas constant ou voir non constant ou defois, pas de resultat :P
void faire_quelquechose(int i); int main() { int a = 42; int b = 72; int t = 0; for (int i = 0, max = a + b; i < max; i++) { faire_quelquechose(t); } return 0; }
Et la le a + b est calcule une seule fois pour plein de tour de boucle !
Et un peu plus de memoire est utilisee.
Commentaires
Il y a toujours mieux...
La variables max n'est pas forcément utile