Restriction d'un type de base

Il est parfois nécessaire de manipuler des variables qui ne peuvent prendre comme valeurs qu'un sous-ensemble des valeurs d'un type de base. Supposons que nous voulions manipuler des booléens. Comme le type booléen n'existe pas dans le langage, il faudra utiliser des int, en se restreignant à deux valeurs, par exemple 0 et 1. Il est alors intéressant de redéfinir à l'aide d'un typedef, le type int. On écrira par exemple :

#define VRAI 1
#define FAUX 0
typedef int BOOLEAN;
On pourra par la suite déclarer des « booléens » de la manière suivante :

BOOLEAN b1,b2;
et les utiliser :

b1 = VRAI;
if (b2 == FAUX) ...
mais bien entendu, ce sera à la charge du programmeur d'assurer que les variables b1 et b2 ne prennent comme valeurs que VRAI ou FAUX. Le compilateur ne protestera pas si on écrit :
b1 = 10;
On voit que la lisibilité du programme aura été augmentée, dans la mesure où le programmeur aura pu expliciter une restriction sémantique apportée au type int.



Matthieu Moy 2012-06-20