La syntaxe générale dune 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 sagit ici encore dun raccourci décriture.
On a pu voir ci-dessus que le nom de structure était facultatif. En effet, il se peut que lon nait que quelques variables de ce type structure à utiliser dans le programme, auquel cas il nest pas nécessaire de nommer la structure :
struct { char *nom, *prenom; int age; } employes[100];
Dans ce cas, il nest plus possible par la suite de déclarer dautres variables du même type.
Précisons aussi quen 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
nest pas utilisé par un autre type ou une variable, il ny a aucune ambiguïté et par conséquent le mot struct
est facultatif. On peut toutefois le préciser si lon craint une confusion.
Il est même possible dutiliser 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 dintérêt : il nest en effet plus permis de déclarer des variables struct fiche
, il faut écrire fiche
tout seul ; il nest 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 | Sommaire | Suivant |