squalyl (./49) :
par contre je suis curieux de voir ce que ça va donner avec visual c++ 
j'avais testé cet après-midi avec VC8 suite au post
./22et j'obtenais
x=1
x=3 z=2 after [z=(x++)+(x++)]
en release et debug (sans pousser les options de compilation plus loin)
et le listing si vous voulez
; 4 : {
00000 56 push esi
; 5 : int x, z;
; 6 : x = 1;
; 7 :
; 8 : printf("x=%d\n", x);
00001 8b 35 00 00 00
00 mov esi, DWORD PTR __imp__printf
00007 6a 01 push 1
00009 68 00 00 00 00 push OFFSET $SG-5
0000e ff d6 call esi
; 9 :
; 10 : z = (x++)+(x++);
; 11 : printf("x=%d z=%d after [z=(x++)+(x++)]\n", x, z);
00010 6a 02 push 2
00012 6a 03 push 3
00014 68 00 00 00 00 push OFFSET $SG-6
00019 ff d6 call esi
0001b 83 c4 14 add esp, 20 ; 00000014H
; 12 : return 0;
0001e 33 c0 xor eax, eax
00020 5e pop esi
; 13 : }
(tellement optimisé qu'on voit rien

)