Usage
La compilation conditionnelle a pour but essentiel d'adapter le programme
à son environnement d'exécution : soit il s'agit d'un programme système
devant s'adapter au matériel sur lequel il s'exécute, soit il s'agit d'un
programme d'application qui doit s'adapter au système sur lequel il s'exécute.
Prenons par exemple le système UNIX qui existe en deux grandes
variantes : la variante BSD et la variante SYSTEM V.
La routine de recherche d'un caractère déterminé dans une chaîne s'appelle
index en BSD et strchr en SYSTEM V, mais l'interface
est le même.
Voici comment on peut écrire un programme se compilant et s'exécutant sur les
deux plate-formes : le programmeur peut décider d'utiliser un nom à lui,
par exemple RechercheCar, et de le définir comme ci-dessous.
#if defined(HAS_INDEX)
#define RechercheCar index
#elif defined(HAS_STRCHR)
#define RechercheCar strchr
#else
#error "Impossible de réaliser RechercheCar"
#endif
Selon le système, la compilation se fera par :
cc -c -DHAS_INDEX fichier.c
ou par :
cc -c -DHAS_STRCHR fichier.c
Matthieu Moy
2017-02-08