© Éditions Eyrolles
211
chapitre n° 12
Le préprocesseur
le préprocesseur générerait le texte :
z = (a,b) a+b(x+5) ;
La norme C99 permet de définir des « fonctions en ligne ». Elles sont repérées par le mot
inline figurant devant leur en-tête et leurs instructions sont incorporées à chaque appel, comme
le sont celles des macros. Mais les fonctions en ligne présentent l’avantage sur les macros de
ne plus induire d’effets de bords.
3 La compilation conditionnelle
Un certain nombre de directives permettent d’incorporer ou d’exclure des portions du fichier
source dans le texte qui est analysé par le préprocesseur. Ces directives se classent en deux
catégories en fonction de la condition qui régit l’incorporation :
●
existence ou inexistence de symboles ;
●
valeur d’une expression.
3.1 Incorporation liée à l’existence de symboles
#ifdef symbole
.....
#else
.....
#endif
demande d’incorporer le texte figurant entre les deux lignes #ifdef et #else si le symbole
indiqué est effectivement défini au moment où l’on rencontre #ifdef. Dans le cas contraire,
c’est le texte figurant entre #else et #endif qui sera incorporé. La directive #else peut,
naturellement, être absente.
De façon comparable :
#ifndef symbole
.....
#else
.....
#endif
Delannoy Livre.book Page 211 Mercredi, 6. mai 2009 4:26 16
Précédent

- 224/281

Suivant