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);
}