20Fermer22
squalylLe 07/08/2007 à 12:23
intéressante, cette précision.

dans (x++)+(x++) , le problème est de savoir si le ++ sera exécuté à la fin de l'évaluation de x ou de l'expresison complète c'est ça? A mon avis il va faire

   +
  / \
 x   x
inc inc


ce qui fera
mov mem[x], r0
mov r0, r1
add #1, r0
mov r0,mem[x]
; effet de bord de x++ calculé dans r0, résultat de x++ dans r1

mov mem[x], r0
mov r0, r2
add #1, r0
mov r0,mem[x]
; effet de bord de x++ calculé dans r0, résultat de x++ dans r2

add r1, r2
; calcul de (x++) + (x++) dans r2

j'ai mal précisié mais on peut comprendre ce que je veux dire, quand même. (sinon, demandez)

enfin si je codais un compilo C, je me démerderais pour que ça génère ça oui

bref, y'a pas un sequence point après une incrémentation?