La directive define en C [Fermé]

Signaler
-
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
-
Bonjour ,qq un peut m expliquer pk le resultat de ce prog affiche 13 au lieu
de 125 et merci
******************
#include<stdio.h>

#define x 4+1
int main()
{
int i;
i = x*x*x;
printf("%d",i);
return 0;
}
 ******************

(a) 125
(b) 13
(c) 17
(d) None of above

1 réponse

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 736
Bonjour,
C'est bien 13 que cela doit afficher et non 125.
Il suffit de remplacer x par 4+1 (il n'y a pas d'évaluation avant substitution).
Ce qui donne : 4+1*4+1*4+1=13.

Cdlt,