Le préprocesseur effectue un prétraitement du programme source avant qu'il soit compilé.
Ce préprocesseur exécute des instructions particulières appelées directives.
Ces directives sont identifiées par le caractère #
en tête. Elles peuvent se continuer sur plusieurs lignes, chaque ligne
à continuer étant terminée par le caractère
suivi d'un
return.
La directive #define permet la définition de pseudo-constantes.
Une pseudo-constante est un identificateur composé de lettres et de chiffres commençant par une lettre. (Le caractère _ est considéré comme une lettre).
Syntaxe
#define identificateur [chaine-de-substitution]
Le préprocesseur remplace tous les mots du fichier source identiques à l'identificateur par la chaîne-de-substitution.
On préférera n'utiliser que des majuscules pour écrire ces identificateurs afin de les différencier des autres (variables, vecteurs, fonctions).
Exemple
#define TAILLE 256
#define TAILLE_EN_OCTETS \
TAILLE*sizeof(int)
main()
{
int tab[TAILLE];
int i;
for(i=0; i < TAILLE; i++)
tab[i] = i;
printf("Le tableau tab contient %d octets\n",
TAILLE_EN_OCTETS);
}
Remarque
La directive #undef permet d'annuler la définition d'une pseudo-constante.
La plupart des préprocesseurs reconnaissent les pseudo-constantes prédéfinies suivantes :