18.1.2 Exemples d'utilisation de typedef

Icône de l'outil pédagogique 18.1.2 Exemples d'utilisation de typedef

En informatique industrielle, on utilise beaucoup les types non signés (unsigned ...), en particulier le type unsigned char. Il est donc pratique de définir (dans un fichier en‐tête) des synonymes plus courts pour les types non signés, par exemple U8, U16 et U32 :

typedef unsigned char U8 ;
typedef unsigned short U16 ;
typedef unsigned long U32 ;

U8 octet = 0xF3, port ;
U16 vitesse = 18000, position = 0x0A7D ;

Voici des exemples de types synonymes un peu plus compliqués (remarquez la syntaxe pour les tableaux) :

typedef short int* T_PTR_ENTIER ;
T_PTR_ENTIER p1, p2 ;

définit un type "pointeur d'entier" baptisé T_PTR_ENTIER et deux variables p1 et p2 appartenant à ce nouveau type.

typedef char T_CHAINE[81] ;
T_CHAINE phrase = "bonjour!" ;

définit un type "chaîne de 81 caractères" (tableau) baptisé T_CHAINE et une variable phrase initialisée.

typedef double T_MATRICE[4][4] ;
T_MATRICE matA, matB ;

définit un type "matrice 4*4 de réels double précision" (tableau 2 dimensions) baptisé T_MATRICE et deux variables matA et matB.

typedef short int T_FONCTION( short int n ) ;

/* Le type T_FONCTION peut être refusé par certains compilateurs pour définir l’en‐tête de fonction, mais ils l’acceptent toujours pour le prototype ou le pointeur de fonction */

T_FONCTION calculer_carre, calculer_cube ; /*prototypes */

T_FONCTION calculer_carre /* refusé par certains compilateurs */
{ return n*n ; }
T_FONCTION calculer_cube
/* refusé par certains compilateurs */
{ return n*n*n ; }

définit un type "fonction recevant un entier n et renvoyant un entier" baptisé T_FONCTION et deux fonctions calculer_carre et calculer_cube de ce type.