Il est possible de regrouper des variables simples ou dimensionnées sous un même nom en utilisant un type appelé structure.
Une structure contient plusieurs champs qui sont les variables regroupées. Les structures permettent de manipuler aisément des données complexes.
La syntaxe
Une structure est un type de variable créé par le programmeur à l'aide de typedef. Une fois le type créé on peut créer des variables.
On défini les types structures à l'aide du mot struct.
typedef struct
{ type nom_champ_1;
…;
type nom_champ_n;
} Nom_du_type_créé;
Exemple :
typedef struct
{ char genre;
float valeur;
} composant;
Le code ci-dessus crée un type de structure appelé composant. Les structures de ce type comporteront 2 champs : genre et valeur avec les types respectivement déclarés.
On peut alors créer une variable de type composant :
int main(void)
{ composant compo1;
...
Ce qui crée une variable compo1 de type composant.
On accède aux différents champs de la variable compo1 en postfixant la variable du nom du champ avec un point.
compo1.genre = 'R';
compo1.valeur = 1e4; /* compo1 est une résistance de 10 kOhms */
L'avantage des structures est qu'elles permettent le stockage et la transmission d'information directement par paquet organisés. En général, on utilise des structures pour modéliser des données complexes tel que des fiches comportant plusieurs champs. De plus il s'agit de variables comme n'importe quelle variable, ainsi l'affectation entre deux structures est possible.
int main(void)
{ composant compo1, compo2;
…
compo1 = compo2 ; // tout à fait valide !!
Par contre on ne peut multiplier ou additionner des structures entr'elles.