UNIONES

Declaración

La declaración de una unión se puede realizar de tres diferentes formas.

Forma 1


union etiqueta {
    tipo campo_1;
    tipo campo_2;
    tipo campo_3;
    . . .
    . . .
    tipo campo_n;} lista_de_variables;

Forma 2


union {
    tipo campo_1;
    tipo campo_2;
    tipo campo_3;
    . . .
    . . .
    tipo campo_n;} lista_de_variables;

Forma 3


union etiqueta {
    tipo campo_1;
    tipo campo_2;
    tipo campo_3;
    . . .
    . . .
    tipo campo_n;};

Ubicación y tamaño de los campos de una unión en la memoria


union ej1 {
    int a;
    char b;} var1;
Union var1

union ej2 {
    int c;
    char d;
    float e;} var2;
Union var2

union ej3 {
    int e;
    char f[3];
    float g;} var3;
Union var3

union ej4 {
    int h[3];
    char i;
    float j[2];} var4;
Union var4

Referencia y asignación a campos en una unión

Referencia a un campo


union ej1 {
    int a;
    char b;} var1;

var1.a

Union var1.a

var1.b

Union var1.b

Asignación (= )


union ej1 {
    int a;
    char b;} var1;

var1.a=39

Union var1.a=39

var1.b='A'

Union var1.b=A

Uniones de estructuras


union unst {
    struct {
        int i;
        char c[8];} st1;
    struct{
        float f;
        long l;} st2;} un1
Union de estructuras

Estructuras de uniones


struct stun { union {   int i1;
                        char c;} un1;
              union {   int i2[2];
                        long l;} un2;} st1;
Estructuras de uniones
Apunte sobre Union