Le typedef

Avec les tableaux vus dans le chapitre précédent, il serais bien, d'avoir un 'truc' pour avoir a éviter de devoir se rappeler exactement le type du tableau, ou de pouvoir changer changer le type du tableau sans avoir a changer a chaque fois que l'on l'utilise.

Heureusement, on a pensé à tout, et il possible de créer ses propres types. Par exemple :

typedef int TypTab[TAILLE]; typedef int entier; typedef char caractere;

Apres ces lignes, il est possible déclarer :

TypTab tableau; entier i; caractere c;

Et tableau sera un tableau d'entiers i sera un int et c un char.

Le type enum

Supposons que vous deviez écrire un programme pour un distributeur de jus de fruit. L'ensemble des fruits n'est pas un type prédéfini en C... comment faire ?

Une solution serais de décider un codage arbitraire des fruits par des entiers : orange=1, citron=2... L'inconvénient est de contraindre le programmeur (vous !) à rappeler par des commentaires la signification des codes, faute de quoi, le programme deviendrais illisible.

De plus, le compilateur ne pourrais faire aucune vérification quant à l'emploi de ces valeurs. Il sera donc possible à l'exécution, et sans que cela soit sanctionne a la compilation, des instructions absurdes telle que l'addition d'un fruit et d'une somme d'argent...

C autorise la création d'un type fruit, par simple énumération des fruits qui nous intéressent :

typedef enum {orange, citron, pamplemousse, tomate } TypFruit;

Les éléments ainsi énumérés sont représentés en machine par des entiers. Par défaut, le premier est code par 0, le second par 1, etc.

Il est possible de choisir soi même sa représentation interne en spécifiant les valeurs entières associées (qui doivent être données par ordre strictement croissant) à chaque élément.

typedef enum {arriere = -1, arret = 0, avant = 1 } mouvement;

Il ne peut pas y avoir le même élément dans deux types énumérés différents :

typedef enum {<b>orange</b>, citron, pamplemousse, tomate } TypFruit; typedef enum {bleu, rouge, <b>orange</b>, vert } TypCouleur ;

N'est pas correct, le mot clé orange étant présent deux fois a des endroits différents.



Dernière révision :
Date de Création : 25 mars 1998
Copyright ©
Mathieu ARNOLD 1998