Définitions de type

Une définition de type (instruction typedef ) ne déclare aucune donnée, mais sert à définir de nouveaux identificateurs pour la déclaration de données.

La syntaxe d'une définition de type est la suivante:

typedef declaration;
Le nouveau nom de type est le nom de la variable dans la partie déclaration de la définition de type. Par exemple, ce qui suit définit un nouveau type appeléeggbox, à l'aide d'un type existant appeléegg:

typedef egg eggbox[DOZEN];
Les variables déclarées à l'aide du nouveau nom de type sont équivalentes aux variables déclarées à l'aide du type existant. Par exemple, les deux déclarations suivantes pour la variablefresheggssont équivalentes:

eggbox fresheggs;
egg    fresheggs[DOZEN];
Une définition de type peut également se présenter sous la forme suivante:

typedef <<struct, union, or enum definition>> identifier;
Une autre forme de définition de type est préférée pour les structures, les unions et les énumérations. Le formulaire de définition de type peut être converti au format alternatif en supprimant le mot clé typedef et en plaçant l'identificateur après le mot clé struct, unionou enum , plutôt qu'à la fin. Par exemple, voici les deux façons de définir le type bool:

enum bool {       /*  preferred alternative  */
FALSE = 0,
TRUE = 1
};
OR

typedef enum {F=0, T=1} bool;

La première syntaxe est préférée car le programmeur n'a pas à attendre la fin d'une déclaration pour déterminer le nom du nouveau type.