Définition

La syntaxe générale d’une définition de structure est la suivante (les crochets indiquent les éléments facultatifs) :

struct [nom_struct] {    type1 champ1;    type2 champ2;    ......    typeN champN;  } [var1, var2, ..., varM];

Les termes var1, etc., sont des variables déclarées simultanément. Il est en effet possible de déclarer des variables structure en même temps que le type, comme ceci :

struct fiche {     char *nom, *prenom;     int age;     } employe1, employes[];

Il s’agit ici encore d’un raccourci d’écriture.

On a pu voir ci-dessus que le nom de structure était facultatif. En effet, il se peut que l’on n’ait que quelques variables de ce type structure à utiliser dans le programme, auquel cas il n’est pas nécessaire de nommer la structure :

struct {     char *nom, *prenom;     int age;     } employes[100];

Dans ce cas, il n’est plus possible par la suite de déclarer d’autres variables du même type.

Précisons aussi qu’en principe, les variables de type structure doivent être déclarées avec le mot struct, comme ceci :

struct fiche employes[100];

Toutefois, tant que le mot fiche n’est pas utilisé par un autre type ou une variable, il n’y a aucune ambiguïté et par conséquent le mot struct est facultatif. On peut toutefois le préciser si l’on craint une confusion.

Il est même possible d’utiliser une déclaration typedef (voir chapitre 4) pour définir une structure :

typedef struct {     char *nom, *prenom;     int age;     } fiche;

Dans ce cas, le nom du type figure à la fin, comme pour toute définition de type. Cette déclaration est toutefois dépourvue d’intérêt : il n’est en effet plus permis de déclarer des variables struct fiche, il faut écrire fiche tout seul ; il n’est pas possible de déclarer des variables en même temps. De plus, cette écriture est plus lourde que la précédente.

Précédent Précédent Sommaire Sommaire Suivant Suivant