Ce sont les directives #ifdef et #ifndef qui permettent de tester l'existence d'une pseudo-constante.
Syntaxe
#ifdef identificateur partie-alors [#else partie-sinon] #endif #ifndef identificateur partie-alors [#else partie-sinon] #endif
La définition d'une pseudo-constante ainsi que sa valorisation peuvent se faire à l'appel de la commande cc au moyen de l'option -D.
Syntaxe
cc -Dpseudo-constante[=valeur] ...On peut appliquer ce principe à la pseudo-constante DEBUG de l'exemple précédent au lieu de la définir dans le fichier source.c :
cc -DDEBUG source.c
Il est possible de construire des expressions interprétables par le préprocesseur à l'aide :
#if pseudo-expression partie-alors [#else partie-sinon] #endif
Remarque
Si l'on désire mettre en commentaire une portion de programme, la solution consistant à l'encadrer par les caractères /* et */ ne marche pas si elle contient elle-même des commentaires.
Une solution simple est de placer en tête de la région à commenter la directive #if 0, et à la fin la directive #endif /* 0 */.
Exemple source.c
#define TBLOC 256 #if !defined TAILLE # define TAILLE TBLOC #endif #if TAILLE%TBLOC == 0 # define TAILLEMAX TAILLE #else # define TAILLEMAX ((TAILLE/TBLOC+1)*TBLOC) #endif static char buffer[TAILLEMAX]; main() { printf("Taille du vecteur : %d caracteres\n", sizeof buffer); }