Faux.
La norme n'est pas floue, elle dit spécifiquement que ces cas sont "undefined", ce qui signifie que l'implémentation est libre de faire ce qu'elle veut.
En d'autres termes int a = 41;
a = a++;
printf("%d\n", a);
Peut aussi bien sortir "42" que "quarante deux". Ces expressions sont incorrectes.
[^] # Re: Bug !!
Posté par neologix . En réponse au journal [SSD] Mesure de la latence d'écriture aléatoire sur disque. Évalué à 2.
Ne me dis pas essaye, car tu prouves le comportement de tel compilateur.
Il y a des tas de cas ou la norme est floue :
a = 2 * b++ - --b + c --;
maFct(fonctAApellerEnPremier(b),fonctAApellerEnDeuxieme(a));
Faux.
La norme n'est pas floue, elle dit spécifiquement que ces cas sont "undefined", ce qui signifie que l'implémentation est libre de faire ce qu'elle veut.
En d'autres termes
int a = 41;a = a++;
printf("%d\n", a);
Peut aussi bien sortir "42" que "quarante deux". Ces expressions sont incorrectes.