Bonjour à tous,
je ne parviens pas à trouver si c'est un undefined behavior ou non.
Voici le code :
En compilant avec gcc v4.2.0 : gcc -std=c99, voici la sortie : "10, 10"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <stdio.h> int main( void ) { int tab[2] = {10, 20}; int i = 1; tab[i] = tab[--i]; printf( "%d, %d\n", tab[0], tab[1] ); return 0; }
En compilant avec xlC v11.01 ou 13.01, voici la sortie : "10, 20"
Le système est IBM Unix AIX.
xlC semble d'abord effectuer la pré-incrémentation puis l'affectation.
Avez-vous des explications sur cette différence ?
Partager