Prog C : multiple if ou ||
Résolu
MatthMirage
Messages postés
47
Statut
Membre
-
garion28 Messages postés 1545 Date d'inscription Statut Membre Dernière intervention -
garion28 Messages postés 1545 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'essaye d'optimisé un bout de code en C.
Je me pose la question suivante :
Quelle code sera le plus rapide ?
if (toto==1) return 0;
if (tata == 0) return 0;
if (titi == 2) return 0;
Ou
if (toto == 1 ||
tata == 0 ||
titi == 2)
return 0;
Merci
J'essaye d'optimisé un bout de code en C.
Je me pose la question suivante :
Quelle code sera le plus rapide ?
if (toto==1) return 0;
if (tata == 0) return 0;
if (titi == 2) return 0;
Ou
if (toto == 1 ||
tata == 0 ||
titi == 2)
return 0;
Merci
A voir également:
- Prog C : multiple if ou ||
- Robot prog - Télécharger - Édition & Programmation
- Clear prog - Télécharger - Sécurité
- Prog dvb - Télécharger - Télévision
- Aide pr premier pas en prog ✓ - Forum Programmation
- Pb advpack.dll lors d'installation de prog - Forum Windows
5 réponses
Bonjour,
Les deux codes sont exactement identiques en terme de rapidité;
Dans les deux cas, les 3 tests sont effectués séquentiellement jusqu'à ce qu'UN soit vrai.
Dubcek : Je confirme qu'avec l'opérateur ||, le test s'arrête au premier VRAI ; Et donc c'est identique dans les deux cas.
Cordialement,
M.
Les deux codes sont exactement identiques en terme de rapidité;
Dans les deux cas, les 3 tests sont effectués séquentiellement jusqu'à ce qu'UN soit vrai.
Dubcek : Je confirme qu'avec l'opérateur ||, le test s'arrête au premier VRAI ; Et donc c'est identique dans les deux cas.
Cordialement,
M.
hello
le premier parce que si toto=1, il ne fait qu'un test ou si tata=0, que 2.
mais il faudrait regarder le code généré par l'optimiseur, parce qu'avec || peut-être que le test s'arrête au premier vrai
le premier parce que si toto=1, il ne fait qu'un test ou si tata=0, que 2.
mais il faudrait regarder le code généré par l'optimiseur, parce qu'avec || peut-être que le test s'arrête au premier vrai
Merci pour ta reponse,
Je viens juste de finir un test.
Le code généré (asembleur et compilation compléte) est plus leger dans le cas ||, et le test s'arréte bien au premier vrai ;)
Merci en tout cas,
Je cloture :D
Je viens juste de finir un test.
Le code généré (asembleur et compilation compléte) est plus leger dans le cas ||, et le test s'arréte bien au premier vrai ;)
Merci en tout cas,
Je cloture :D
je pencherai pour le deuxième puisque quelqu'au final ca retourne 0
de plus si tes 3 variables sont bien égal aux valeur associé alors ca retournera 3 fois 0, ce qui plantera (c'est pour ca qu'il est préférable de n'avoir qu'un seul return par fonction)
de plus si tes 3 variables sont bien égal aux valeur associé alors ca retournera 3 fois 0, ce qui plantera (c'est pour ca qu'il est préférable de n'avoir qu'un seul return par fonction)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question