[C con Clase] Cuestion sobre las Uniones.

Alejandro Alcalde algui91 en gmail.com
Jue Sep 23 13:25:38 CEST 2010


>
> typedef union _LARGE_INTEGER {
>    struct {
>        DWORD LowPart;
>        LONG  HighPart;
>    };
>    LONGLONG QuadPart;
> } LARGE_INTEGER;
> ----8<------
>
> Un DWORD me suena del registro de Windows no??

Imagina otra unión:
>
> union ejemplo {
>    struct {
>        char A;
>        char B;
>        char C;
>        char D;
>    };
>    int x;
> };
>
> En este caso tenemos dos objetos superpuestos: cuatro caracteres y un valor
> entero de 32 bits. (suponiendo que int ocupa 32 bits).
>
> La misma información almacenada en un objeto de este tipo puede ser un
> entero, o podemos acceder a cada uno de sus bytes como un carácter.
>
> Por supuesto, hay otras aplicaciones, en las que los valores almacenados no
> pueden ser tratados de las dos maneras. Por ejemplo:
>
> enum tipo {cadena, numero, vector};
>
> struct ejemplo2 {
>    tipo t;
>    union {
>        char cadena[32];
>        double valor;
>        int array[4];
>    };
> };
>

Es un poco dificil de entender al principio, ya me va quedando mas claro,
por ejemplo, otra utilidad que se le puede dar no seria para mostrar la
equivalencia entre un hexadecimal, octal, y decimal??

respecto a la enumeracion, cadena, numero y vector, tendrian los valores 1,2
y 3?? y como cambiaria el valor de tipo??
tipo=3 (vector), o tipo = vector?

Gracias por la explicacion

>

-- 
*Saludos, Alejandro A.B.
Mi blog: http://bashyc.blogspot.com/*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100923/dabe5018/attachment.html>


Más información sobre la lista de distribución Cconclase