O tipo union é um tipo de dado complexo que permite que um mesmo local
de memória seja compartilhado armazenando diferentes tipos de dados.
Seus membros devem ser declarados entre { e } e separados por (;). A declaração
de seus membros segue as mesmas regras para declaração de variáveis. Seu tamanho
depende dos tipos de dados utilizados em sua composição.
O tipo de dados union é principalmente utilizado para economizar memória.
Sintaxe
union nome_union
{
tipo_dado membro1;
tipo_dado membro2;
tipo_dado membroN;
}
O acesso aos membros de uma union é feita utilizando o operadore (.) seguido do nome do do membro como pode
ver visto na sintaxe abaixo:
Sintaxe
variavel_enum.nome_membro
Como um union agrupa vários tipos de dados em apenas um local de memória,
é necessário trabalhar com um membro union por vez, ou seja, a cada atribuição
de valor a um determinado membro, a utilização do mesmo deve ser feito em seguida.
Sintaxe
variavel_union.nome_membro1 = valor1 //valor descartado
variavel_union.nome_membro2 = valor2 //valor válido para utilização
Caso seja feita a atribuição de valores para todos os membros de uma union de
forma sequencial, apenas o último valor atribuído será válido. Caso outro membro
seja acessado, dados inválidos serão retornados.