49Fermer51
twindruffLe 07/08/2007 à 19:28
squalyl (./49) :
par contre je suis curieux de voir ce que ça va donner avec visual c++ tongue

j'avais testé cet après-midi avec VC8 suite au post ./22
et 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 grin)