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 ej2 {
int c;
char d;
float e;} var2;
union ej3 {
int e;
char f[3];
float g;} var3;
union ej4 {
int h[3];
char i;
float j[2];} var4;
Referencia y asignación a campos en una unión
Referencia a un campo
union ej1 {
int a;
char b;} var1;
var1.a
var1.b
Asignación (= )
union ej1 {
int a;
char b;} var1;
var1.a=39
var1.b='A'
Uniones de estructuras
union unst {
struct {
int i;
char c[8];} st1;
struct{
float f;
long l;} st2;} un1
Estructuras de uniones
struct stun { union { int i1;
char c;} un1;
union { int i2[2];
long l;} un2;} st1;