27Fermer29
GodzilLe 07/08/2007 à 14:05
Bizzarement quand meme :

mtrapier@prod500 ~ $ cat xpp.c 
#include <stdio.h>

int main()
{
 int x, z;
 x = 1;

 printf("x=%d\n", x);

 z = (x++)+(x++);
 printf("x=%d z=%d after [z=(x++)+(x++)]\n", x, z);
 return 0;
}
mtrapier@prod500 ~ $ gcc xpp.c -o xpp.app
mtrapier@prod500 ~ $ ./xpp.app 
x=1
x=3 z=2 after [z=(x++)+(x++)]
mtrapier@prod500 ~ $ gcc xpp.c -O1 -o xpp-o1.app
mtrapier@prod500 ~ $ gcc xpp.c -O2 -o xpp-o2.app
mtrapier@prod500 ~ $ gcc xpp.c -O3 -o xpp-o3.app
mtrapier@prod500 ~ $ gcc xpp.c -Os -o xpp-os.app
mtrapier@prod500 ~ $ ./xpp-o1.app 
x=1
x=3 z=2 after [z=(x++)+(x++)]
mtrapier@prod500 ~ $ ./xpp-o2.app 
x=1
x=3 z=2 after [z=(x++)+(x++)]
mtrapier@prod500 ~ $ ./xpp-o3.app 
x=1
x=3 z=2 after [z=(x++)+(x++)]
mtrapier@prod500 ~ $ ./xpp-os.app 
x=1
x=3 z=2 after [z=(x++)+(x++)]
mtrapier@prod500 ~ $ 


Le testcase est trop simple pour etre significatif mais bon quand meme meme avec optimisation ça ne casse pas le resultat

pour rigoler :

mtrapier@prod500 ~ $ gcc xpp.c -O9 -o xpp-o9.app
mtrapier@prod500 ~ $ ./xpp-o9.app 
x=1
x=3 z=2 after [z=(x++)+(x++)]
mtrapier@prod500 ~ $