Qu'est-ce que union (type union du C) ?

Type du C dont tous les membres commencent à la même adresse et se superposent. On le déclare comme union { uint32_t w; uint8_t b[4]; } u; et sa taille est celle du plus grand membre (arrondie à un multiple de l'alignement). Un seul membre contient une valeur significative à un instant donné ; les unions servent à voir la même mémoire sous des types différents, et à économiser la mémoire lorsque les données prennent l'une de plusieurs formes. Écrire u.w puis lire u.b[0] donne un résultat qui dépend de l'endianness.

Nom japonais: 共用体

« union (type union du C) » apparaît dans 1 questions d'entraînement réparties sur 1 thèmes, dont Bases de la programmation en C.

Domaine: Bases de la programmation en C

« union (type union du C) » dans les explications

Questions mentionnant « union (type union du C) » (1)

  1. uint32_t et uint8_t sont des types entiers non signés de 32 bits et de 8 bits, et l'environnement est petit-boutiste (little-endian). Quelle est la sortie obtenue en exécutant le code ci-dessus ?

Termes associés

Alignement et remplissage (padding) Allocation dynamique de mémoire Champ de bits (bit-field) Comportement indéfini (undefined behavior) Débordement de tampon (buffer overflow) Fuite de mémoire (memory leak) Macro (#define) Pointeur Pointeur de fonction Pointeur pendant (dangling pointer)

Retour au glossaire