next up previous contents index
Next: Recherche de zéros par Up: No Title Previous: Arguments fonctionnels

Abréviations de type

    

L'instruction typedef, qui sert à définir un nom comme l'abréviation d'un type, est généralement employée pour désigner par un nom un type dont l'expression est complexe, par exemple un type fonctionnel, un type de tableaux ou un type structure. L'abréviation  

typedef double (*fun)(double);

fait du nom fun une abréviation du type des fonctions

\begin{displaymath}
\texttt{double} \to \texttt{double}.\end{displaymath}

Cette abréviation, où le * sera expliqué ultérieurement, est utilisable, par exemple pour déclarer le type d'un paramètre d'une fonction :

double newton(fun f, fun fprime, int n, double x0);

qui est plus concis que

double newton(double f(double), 
              double fprime(double), 
              int n, double x0);

De la même façon, l'abréviation rel du type des relations binaires sur les double s'exprime par :

typedef int (*rel)(double, double);

Une autre utilisation significative de typedef consiste à paramétrer un programme par un nom de type. Il suffira de modifier l'abréviation et le programme n'aura pas à être modifié par ailleurs. Cela permet de pallier partiellement l'absence de possibilités de typage générique en C. On écrira en tête du fichier :

typedef int data;

Le reste du programme n'utilisant que data, il suffira, le cas échéant, de remplacer cette définition de data par une autre, sans devoir modifier autre chose (sous réserve que les opérations sur les data aient toujours un sens pour autre chose que des int).

La syntaxe de ces abréviations est assez déroutante : on procède comme si l'on définissait une variable, le nom du type introduit étant à la place du nom de variable, et le tout est précédé de typedef.


next up previous contents index
Next: Recherche de zéros par Up: No Title Previous: Arguments fonctionnels
Jean-Philippe Chancelier
9/29/1998