jueves, 11 de agosto de 2011

Programación en C++/ Estructura I.. "union: Sintaxis general"

union: Sintaxis general

union[<nombre tipo de union>]{
<tipo><lista de variables>;
}[<variables de union>];

§  De la misma manera que con la orden struct, con la orden union se pueden crear estructuras con nombre y estructuras sin nombre.

§  El mecanismo de acceso a los miembros de una union es igual al mecanismo de acceso a los miembros de una struct.

§  Los miembros de una union comparten un espacio de almacenamiento común.

§  En una union, el compilador reserva el espacio de almacenamiento para la misma de acuerdo con el el tipo de la variable de mayor tamaño.

Ejemplo: union anónima

union{short a;long b;} u1;

En el ejemplo anterior se declara la variable u1, la cual es una estructura tipo union. El espacio de almacenamiento para la variable aes compartido por la variable b, en consecuencia, al escribir sobre cualquiera de estas dos variables se altera el contenido de ambas.

Ejemplo: union con nombre

union ux {short a;long b;} u1;

En el ejemplo anterior se declara la variable u1, la cual es una estructura tipo union. El espacio de almacenamiento para la variable aes compartido por la variable b. Es decir, el compilador reservará espacio en la memoria para la variable de mayor tamaño (que para éste caso es b ). Ahora bién, suponiendo que en su equipo el tipo long ocupa 32 bits y que el tipo short ocupa 16 bits, entonces la variable a ocupará solamente los 16 bits menos significativos, miemtras que la variable b ocupará todo el espacio, o sea los 32 bits; Observe que en la sintaxis se ha especificado el nombre ux, mismo que puede ser empleado para declarar cualquier número de variables de la union. Por ejemplo, a continuación se declaran las variables u2 y u3 del tipo union ux creado en el ejemplo anterior.

union ux u2, u3;












No hay comentarios:

Publicar un comentario