Les structures, unions et champs de bits

struct complex {
   /* partie réelle */
   float x;
   /* partie imaginaire */
   float y;
};
Structure à deux champs flottants. Définit l'étiquette de structure complex sans déclarer de variable.
struct complex {
   /* partie réelle     */
   float x;
   /* partie imaginaire */
   float y;
} c1, c2;
Structure à deux champs flottants. Définit l'étiquette de structure complex et déclare les deux variables c1 et c2.
struct {
   /* partie réelle     */
   float x;
   /* partie imaginaire */
   float y;
} c;
Structure à deux champs flottants. Déclare la variable c sans définir d'étiquette pour la structure.
enum type {ENTIER, FLOTTANT}
struct arith {
   enum type typ_val;
   union
      {
      int i;
      float f;
      } u;
   };
Union d'un type entier et d'un type flottant associé dans une structure à un indicateur (le champ typ_val) permettant de connaitre le type de la valeur stockée dans l'union u.
struct sr {
   unsigned int trace : 2;
   unsigned int priv : 2;
   unsigned int : 1;
   unsigned int masque : 3;
   unsigned int : 3;
   unsigned int extend : 1;
   unsigned int negative : 1;
   unsigned int zéro : 1;
   unsigned int overflow : 1;
   unsigned int carry : 1;
   };
Champs de bits : description du registre d'état du MC68000. Il s'agit d'un mot de 16 bits. Les troisième et cinquième champs ne portent pas de nom.

Matthieu Moy 2017-02-08