Programmer en langage C
206
© Éditions Eyrolles
déclarations communes à plusieurs fichiers source différents, en particulier dans le cas des
prototypes de fonctions.
Rappelons que cette directive possède deux syntaxes voisines :
#include
recherche le fichier mentionné dans un emplacement (chemin, répertoire) défini par l’implémentation.
#include "nom_fichier"
recherche le fichier mentionné dans le même emplacement (chemin, répertoire) que celui où
se trouve le programme source.
Généralement, la première est utilisée pour les fichiers en-tête correspondant à la bibliothèque
standard, tandis que la seconde l’est plutôt pour les fichiers que vous créez vous-même.
Un fichier incorporé par #include peut lui-même comporter, à son tour, des directives #include ;
c’est d’ailleurs le cas de certains fichiers en-tête relatifs à la bibliothèque standard. D’une
manière générale, le nombre maximal de niveaux d’imbrication des directives #include dépend
de l’implémentation ; toutefois, en pratique, il n’est jamais inférieur à 5.
Lorsque vous créez vos propres fichiers en-tête, il vous faut prendre garde à ne pas introduire
plusieurs fois des déclarations identiques, ce qui risquerait de conduire à des erreurs de compilation. Ce point est particulièrement crucial dans le cas d’imbrication des directives #include.
D’une manière générale, ce genre de problème, qui se pose d’ailleurs fréquemment avec les
fichiers en-tête standard, se résout par l’emploi de directives conditionnelles, associé à la
définition de symboles particuliers (nous y reviendrons dans le paragraphe 3).
2 La directive #define
Elle offre en fait deux possibilités :
●
définition de symboles (c’est sous cette forme que nous l’avons employée jusqu’ici) ;
●
définition de macros.
2.1 Définition de symboles
Une directive telle que :
#define nbmax 5
demande de substituer au symbole nbmax le texte 5, et cela chaque fois que ce symbole apparaîtra dans la suite du fichier source.
Delannoy Livre.book Page 206 Mercredi, 6. mai 2009 4:26 16
Précédent

- 219/281

Suivant