![]() ![]() ![]() |
|
L a n g a g e C
L e s s t r u c t u r e s
La définition
La définition des champs est analogue à la définition de variables (attention à ne pas oublier le point virgule à la fin de la définition) :
Cela peut s'écrire également :
Une référence à une structure peut être faite avant sa définition, à condition que sa taille ne soit pas nécessaire au compilateur :
La déclaration suivante référence une structure alors qu'elle n'est que partiellement définie :
En définissant un nouveau type, on peut éviter de répéter struct partout où le type structure est utilisé :
Il est par contre impossible de définir des structures récursives infinies du type :
Une structure peut être initialisée lors de sa définition de la même façon qu'un tableau :
Les opérations sur les structures
L'opérateur . permet de référencer un champ dans une structure :
L'opérateur -> permet de référencer un champ à partir d'un pointeur de structure :
L'opérateur = permet d'affecter une structure à une autre structure de même type. Par contre il n'est pas permis de comparer globalement deux structures avec l'opérateur == . Structures et fonctions
Une structure peut être passée en paramètre à une fonction. Comme tout paramètre, elle est recopiée localement à l'entrée de la fonction.
Une fonction peut retourner une structure :
Les champs de bits
Une structure peut avoir des champs plus petits que le type char, ce sont les champs de bits.
Cette déclaration définit S comme ayant un champ a d'un bit, un champ b de 3 bits, un champ c de 5 bits et un champ d entier. Les champs de bits sont toujours de type unsigned. Il est possible de laisser des espaces de remplissage après les champs de bits pour aligner le champ suivant :
Le regroupement de ces champs ainsi que les espaces de remplissage dépendent de l'architecture de la machine. L'utilisation des champs de bits est non portable.
|
![]() |
![]() |
![]() |
© 2000-2025 Exood4 Studio. Tous droits réservés. |