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