Pour ceux qui se demanderaient le pourquoi du comment, voici ce qui se passe dans ce programme :
D'abord, le préprocesseur remplace la ligne #include par le contenu du fichier stdio.h, il fait de même avec les #define (il remplace l'alias par sa valeur, soit 1+5, sans faire aucune interprétation/calcul)
Ensuite, le compilateur doit transformer le source en opcodes, et il tombe sur :
printf( "What you get if you multiply six by nine: %d\n", SIX * NINE );
transformé par le préprocesseur en :
printf( "What you get if you multiply six by nine: %d\n", 1+5 * 8+1);
Les règles de priorité des opérateurs favorisant la multiplication au détriment de l'addition, cela revient à 1+(5*8)+1, soit 40+2.
[^] # Re: 6*9
Posté par Cali_Mero . En réponse au journal Google, encore et toujours. Évalué à 4.
Pour ceux qui se demanderaient le pourquoi du comment, voici ce qui se passe dans ce programme :
D'abord, le préprocesseur remplace la ligne #include par le contenu du fichier stdio.h, il fait de même avec les #define (il remplace l'alias par sa valeur, soit 1+5, sans faire aucune interprétation/calcul)
Ensuite, le compilateur doit transformer le source en opcodes, et il tombe sur :
printf( "What you get if you multiply six by nine: %d\n", SIX * NINE );
transformé par le préprocesseur en :
printf( "What you get if you multiply six by nine: %d\n", 1+5 * 8+1);
Les règles de priorité des opérateurs favorisant la multiplication au détriment de l'addition, cela revient à 1+(5*8)+1, soit 40+2.