struct personne { char nom[20]; char prenom[20]; int no_employe; };déclare l'identificateur personne comme étant le nom d'un type de structure composée de trois membres, dont le premier est un tableau de 20 caractères nommé nom, le second un tableau de 20 caractères nommé prenom, et le dernier un entier nommé
no_employe
.
Dans le jargon du langage C, l'identificateur personne est une
étiquette de structure.
On peut ensuite utiliser ce type structure pour déclarer des variables,
de la manière suivante :
struct personne p1,p2;qui déclare deux variables de type struct personne de noms p1 et p2;
struct { char nom[20]; char prenom[20]; int no_employe; } p1,p2;déclare deux variables de noms p1 et p2 comme étant deux structures de trois membres, mais elle ne donne pas de nom au type de la structure. L'inconvénient de cette méthode est qu'il sera par la suite impossible de déclarer une autre variable du même type. En effet, si plus loin on écrit :
struct { char nom[20]; char prenom[20]; int no_employe; } p3;les deux structures ont beau avoir le même nombre de champs, avec les mêmes noms et les mêmes types, elles seront considérées de types différents. Il sera impossible en particulier d'écrire
p3 = p1;
.
struct personne { char nom[20]; char prenom[20]; int no_employe; } p1,p2;déclare les deux variables p1 et p2 et donne le nom personne à la structure. Là aussi, on pourra utiliser ultérieurement le nom struct personne pour déclarer d'autres variables :
struct personne pers1, pers2, pers3;qui seront du même type que p1 et p2.
De ces trois méthodes c'est la première qui est recommandée, car elle permet de bien séparer la définition du type structure de ses utilisations.
struct personne p = {"Jean", "Dupond", 7845};