Des déclarations contenant le spécificateur-déclarationtypedef
déclare des identificateurs pouvant être utilisés ensuite pour le nommage de
types fondamentaux ou dérivés. Le spécificateur typedef ne peut pas être
utilisé dans une définition-fonction.
La définition des prototypes, dans le manuel, conjointement avec les
fichiers d’entête utilise abondamment le typedef. Par exemple :
$ man malloc
...
SYNOPSIS
#include
void *
malloc(size_t size)
...
$ more /usr/include/stdlib.h
...
#include <machine/ansi.h>
...
typedef _BSD_SIZE_T_ size_t;
...
$ more /usr/include/machine/ansi.h
...
#define _BSD_SIZE_T_ unsigned int
...
ce qui permet de traduire :
size_t est l’équivalent de unsigned int.
Utilisation pour les types de données abstraits
L’usage élémentaire consiste à définir un type {\tt Boolean}\footnote {Mammeri
M. {\it programmation} {\sc ecole centrale de paris} {\tiny 1997-1998} p. 19
et 36}.
typedef enum { FALSE, TRUE } Boolean ;
br
L’usage plus élégant consiste à renommer les structures\footnote{{\it ibid.}
p.65} :
Le fichier Liste.tda est un gigantesque typedef qui utilise les
possibilités des macros afin de créer des listes d’objets dont le type est
défini au moment de l’utilisation.