Je suis intéressé, lequel de ces formes de l'expression de test de boucle for
est plus juste (du point de la performance et la bonne pratique de code):Opération mathématique dans l'expression de test de la boucle `for` - perfomance, optimisation
for(i = 0; i < size - 1; i++) {
do something
}
ou
int decreased_size = size - 1;
for(i = 0; i < decreased_size; i++) {
do something
}
est l'expression de test size - 1
calculé chaque fois que dans le premier exemple ou le compilateur d'optimiser à la valeur constante, donc il n'y a pas besoin de créer unevariable supplémentaire?
Je créais une variable supplémentaire tout le temps, mais maintenant, en regardant les autres solutions sur le Codeforces, je doute - que ce soit logique?
compilateur: GCC 5.4.0 Version 20160609
Cela dépend si le compilateur peut déterminer avec 100% de certitude que 'size' ne peut pas changer dans la boucle. Mais généralement, ce var supplémentaire est un gaspillage de frappe. – Mat
Construire un fichier exécutable optimisé. Vérifiez le code machine généré. C'est la seule façon de voir ce que le compilateur va faire. –
3ème choix: 'pour (i = 0; i + 1
chux