Le préprocesseur (de texte) est un programme s’exécutant avant la compilation. Il parcours le fichier source à la recherche de directives de précompilation (introduites par le caractères '#') qu'il traite et remplace.
Lorsque le préprocesseur rencontre la directive #include, il insère littéralement le contenu du fichier indiqué à l'endroit du#include.
Cette directive permet de définir une constante de préprocesseur. Cela permet d'associer une valeur à un mot:
#define MAX_LENGTH 110
Dans cet exemple, lors de son exécution, le préprocesseur remplacera toutes les occurrences du mot MAX_LENGTH dans le fichier source par la valeur 110.
On notera:
On utilise souvent les directives define pour donner une taille maximale à des tableaux ou buffers.
Pour éviter les inclusions infinies, une bonne pratique consiste à systématiquement déclarer une constante lors de la première inclusion grâce à une condition. Si une autre inclusion est
#ifndef FILE_H // Si la constante n'a pas été définie le fichier n'a jamais été inclus #define FILE_H // On définit la constante pour que la prochaine fois le fichier ne soit plus inclus /* Contenu de votre fichier .h (autres include, prototypes, define...) */ #endif // FILE_H