CoderMan :
Si certain compilateur compile automatiquement comme tu le prétend ca donne ceci
//
for (x=63999;x--)
{
Video[x]=x;
Video[x+1]=1;
}
C'est pourquoi tu te trompe lorsque tu affirmes que certain compilateur optimise automatiquement ce genre d'optimisation.
Certain compilateur sont malin mais pas encore pour analyser entièrement le programme et ce que cela va donner.
Arf... Avant de contredire tu devrais peut être verifier au lieu de te baser sur des suppositions....
Tu devrais aussi faire attention à ce qui est ecrit, j'ai bien precisé que les variables compteurs ne doivent pas être utilisés dans la boucle (pour autre chose que compter le nombre de cycles)
Si tu fait de l'asm, tu sais que décrementer un registre pour créer un "for" et beaucoup plus rapide
Euh, petite precision, on parle de C ici et non de C#, on est d'accord ?
Sinon, pour être encore plus precis, la decrementation d'un registre dont le resultat est zero va armer un des flags d'etat du CPU, (le flag Z comme Zero) qui permet d'economiser un test donc un cycle machine dans la boucle.
Si la boucle contient 30 instructions, cette optimisation fera gagner 3.3%, difficile de dire que c'est "beaucoup plus rapide"
et personnellement, je préfère que le compilateur fait son travail d'optimisation avec un minimum d'optimisation c# vers ASM en aident en quelque sorte le compilateur a faire le bon choix.
Euh, je ne suis pas sûr de suivre, tu veux dire quoi exactement ?
Il n'existe à ma connaissance qu'une seule methode fiable pour aider le compilateur à optimiser : regarder le resultat et changer le source pour l'ameliorer....
Et rien de pire que de se baser sur des croyances ou suppositions plus ou moins bien fondées...