© Éditions Eyrolles
213
chapitre n° 12
Le préprocesseur
En voici un exemple d’utilisation :
#define CODE 1
.....
#if CODE == 1
instructions 1
#endif
#if CODE == 2
instructions 2
#endif
Ici, ce sont les instructions 1 qui seront incorporées par le préprocesseur. Mais il s’agirait des
instructions 2 si nous remplacions la première directive par :
#define CODE 2
Notez qu’il existe également une directive #elif qui permet de condenser les choix imbriqués. Par exemple, nos précédentes instructions pourraient s’écrire :
#define CODE 1
.....
#if CODE == 1
instructions 1
#elif CODE == 2
instructions 2
#endif
D’une manière générale, la condition mentionnée dans ces directives #if et #elif peut faire
intervenir n’importe quels symboles définis pour le préprocesseur et des opérateurs relationnels, arithmétiques ou logiques. Ces derniers se notent exactement de la même manière qu’en
langage C.
En outre, il existe un opérateur noté defined, utilisable uniquement dans les conditions destinées au préprocesseur (if et elif). Ainsi, l’exemple donné à la fin de la section 3.1 pourrait
également s’écrire :
#define MISEAUPOINT
.....
#if defined(MISEAUPOINT)
instructions 1
#else
instructions 2
#endif
Delannoy Livre.book Page 213 Mercredi, 6. mai 2009 4:26 16
213
chapitre n° 12
Le préprocesseur
En voici un exemple d’utilisation :
#define CODE 1
.....
#if CODE == 1
instructions 1
#endif
#if CODE == 2
instructions 2
#endif
Ici, ce sont les instructions 1 qui seront incorporées par le préprocesseur. Mais il s’agirait des
instructions 2 si nous remplacions la première directive par :
#define CODE 2
Notez qu’il existe également une directive #elif qui permet de condenser les choix imbriqués. Par exemple, nos précédentes instructions pourraient s’écrire :
#define CODE 1
.....
#if CODE == 1
instructions 1
#elif CODE == 2
instructions 2
#endif
D’une manière générale, la condition mentionnée dans ces directives #if et #elif peut faire
intervenir n’importe quels symboles définis pour le préprocesseur et des opérateurs relationnels, arithmétiques ou logiques. Ces derniers se notent exactement de la même manière qu’en
langage C.
En outre, il existe un opérateur noté defined, utilisable uniquement dans les conditions destinées au préprocesseur (if et elif). Ainsi, l’exemple donné à la fin de la section 3.1 pourrait
également s’écrire :
#define MISEAUPOINT
.....
#if defined(MISEAUPOINT)
instructions 1
#else
instructions 2
#endif
Delannoy Livre.book Page 213 Mercredi, 6. mai 2009 4:26 16
