Programmer en langage C
212
© Éditions Eyrolles
demande d’incorporer le texte figurant entre les deux lignes #ifndef et #else si le symbole
indiqué n’est pas défini. Dans le cas contraire, c’est le texte figurant entre #else et #endif
qui sera incorporé.
Notez bien que, pour qu’un tel symbole soit effectivement défini pour le préprocesseur, il doit
faire l’objet d’une directive #define. Notamment, ne confondez pas ces symboles avec
d’éventuelles variables qui pourraient être déclarées par des instructions C classiques, et qui,
quant à elles, ne sont absolument pas connues du préprocesseur.
Voici un exemple d’utilisation de ces directives :
#define MISEAUPOINT
.....
#ifdef MISEAUPOINT
instructions 1
#else
instructions 2
#endif
Ici, les instructions 1 seront incorporées par le préprocesseur, tandis que les instructions 2 ne
le seront pas. En revanche, il suffirait de supprimer la directive #define MISEAUPOINT
pour aboutir au résultat contraire.
Ces définitions de symboles sont fréquemment utilisées dans les fichiers en-tête standard.
Ils permettent notamment d’inclure, depuis un fichier en-tête donné, un autre fichier en-tête,
en s’assurant que ce dernier n’a pas déjà été inclus (afin d’éviter la duplication de certaines
instructions risquant de conduire à des erreurs de compilation). La même technique peut, bien
sûr, s’appliquer à vos propres fichiers en-tête.
3.2 Incorporation liée à la valeur d’une expression
La construction ci-après :
#if condition
.....
#else
.....
#endif
permet d’incorporer l’une des deux parties du texte, suivant la valeur de la condition indiquée.
Delannoy Livre.book Page 212 Mercredi, 6. mai 2009 4:26 16
Précédent

- 225/281

Suivant