Mythe ou réalite : ++i / i++.

Résolu
Signaler
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
-
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
-
Bonjour.

Dans une boucle for est-il vrai que l'incrémentation ++i est préférable à i++ (ou l'inverse) car en assembler elle demande moins d'opérations?

Merci de m'éclairer sur ce mystère..

<hr size="2" width="100%" />Quand la merde vaudra de l'or les pauvres naitront sans trou du cul. Coluche.

4 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Pour revenir à la question initiale, c'est strictement identique hors contexte.

// code ici
i++;
// code ici
++i;

c'est le compilo que décidera suivant l'arbre d'optimisation obtenu s'il mettra:
inc eax
ou: add eax, 1
ou: lea eax, [eax+1]

Dans tous les cas c'est 1 cycle parallélisable que soit PRE ou POST, tout autre discours n'est que légende urbaine. Ensuite si mettre du pré ou du post ne sera dicté que par les nécessités de calcul de ton algo.

ciao...
BruNews, MVP VC++
Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009
1
Bonjour,

Il est toujours préférable d'utiliser la préincrémentation (++i) à la postincrémentation (i++). Le problème se pose quand i est une instance de classe; la postincrémentation signifie qu'une instance va être créée (pour conserver la valeur avant incrémentation) avant que l'instance i soit incrémentée et c'est l'instance créée qui est retournée (la valeur avant incrémentation ... qui ne sert à rien ici !).
Comme de toute façon la pré/postincrémentation n'a aucune signification dans une instruction du genre ++i ou i++ (ça n'a de signification que si i est utilisé avant/après l'incrémentation comme dans j ++i; ou j i++; où là il y a une vraie différence) autant toujours utiliser la préincrémentation (qui est plus lisible aussi).

Jean-François
Messages postés
416
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
19 décembre 2013
2
Bonjour,

Je suis entierement d'accord avec toi jfrancois, :D  ++i
je suis heureux de faire partie d'une grande famille ...!
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
9
Merci.

<hr size="2" width="100%" />Quand la merde vaudra de l'or les pauvres naitront sans trou du cul. Coluche.