13.5.1 Simplification des écritures avec typedef

Icône de l'outil pédagogique Simplification des écritures avec typedef

La définition de « types synonymes » par typedef (voir le chapitre "Simplifications d'écriture") est ici indispensable pour simplifier des écritures très lourdes et accroître la lisibilité du programme.

Pour les types définis par typedef, il est conseillé d'adopter un nom facilement reconnaissable. En particulier, il est très utile que le nom du type commence par T_ (pour Type_). Voici la convention (personnelle) adoptée pour la suite : un nom de type commence par T_ et sera noté le plus souvent en majuscules.

Exemples : types T_FONCTION, T_ADRESSE, T_date. Le but de cette convention est d'éviter la confusion fréquente entre le nom du type créé par l'utilisateur et le nom des variables définies avec ce type.

Pour définir des pointeurs de fonction, il convient d'abord de créer un type pour caractériser le genre de fonction pointée. Par exemple :

typedef short int T_FONCTION( short int n ) ;

permet de définir un type « fonction recevant un entier et renvoyant un entier » baptisé T_FONCTION.

Pour définir ensuite des fonctions de ce type (appelées calculer_carre et calculer_cube), il suffit (si votre compilateur l'accepte) d'écrire :

Attention ! certains compilateurs refusent l'utilisation du type T_FONCTION pour la définition de fonction (mais ils l'acceptent pour le prototype ou le pointeur de fonction). Il faut alors écrire classiquement :

On va voir que la définition et l'affectation d'un pointeur se fait alors simplement :

T_FONCTION* ptr_fct ; /* définition du pointeur de fonction */
ptr_fct = calculer_cube ; /* affectation du pointeur de fonction */