The union Keyword
union tag {
union_member(s);
/* additional statements may go here */
}instance;
O keyword da união é usado declarando uniões. Uma união é uma coleção de um ou mais variável (union_members) que foram agrupadas sob um único nome. Além, cada um destes membros de união ocupa a mesma área de memória.
A união do keyword identifica o começo de uma definição da união. Seguiu por um Tag que fosse o nome dado à união. Depois do Tag são os membros de união incluídos nas cintas.
Um exemplo, a declaração real de uma união, também pode ser definido. Se você definir a estrutura sem o exemplo, é justo um molde que possa ser usado mais tarde em um programa declarar estruturas. O seguinte é formato de um molde:
union tag {
union_member(s);
/* additional statements may go here */
};
Para usar o molde, você usaria o seguinte formato:
union tag instance;
Para usar este formato, você deve previamente ter declarado uma união com o Tag dado.
/* Declare a union template called tag */
union tag {
int num;
char alps;
}
/* Use the union template */
union tag mixed_variable;
/* Declarar uma união e um exemplo junto */
union generic_type_tag {
char c;
int i;
float f;
double d;
} generic;
/* Initialize a union. */
union date_tag {
char full_date[9];
struct part_date_tag {
char month[2];
char break_value1;
char day[2];
char break_value2;
char year[2];
} part_date;
}date = {"09/12/80"};
Deixar-nos mais melhor compreendê-lo com a ajuda dos exemplos:
#include <stdio.h>
int main()
{
union
{
int value; /* This is the first part of the union */
struct
{
char first; /* These two values are the second part of it */
char second;
} half;
} number;
long index;
for (index = 12 ; index < 300000L ; index += 35231L)
{
number.value = index;
printf("%8x %6x %6x\n", number.value,
number.half.first,
number.half.second);
}
return 0;
}
E a saída do programa será indicada como segue:
c c 0
89ab ffab ff89
134a 4a 13
9ce9 ffe9 ff9c
2688 ff88 26
b027 27 ffb0
39c6 ffc6 39
c365 65 ffc3
4d04 4 4d
|
|