Uniões e eficiência de memória
Entenda as diferenças entre struct e union e como as uniões otimizam o uso da memória.
Uniões e eficiência de memória é uma aula grátis de C Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C Academy inclui 3 aulas no total.
Uniões e eficiência de memória
Uniões e eficiência de memória
Uma união é um tipo de dado especial que permite armazenar diferentes tipos de dados na mesma posição de memória.
Nesta lição, você aprenderá:
- Como definir e usar uniões.
- A diferença entre estruturas e uniões.
- Como as uniões otimizam o uso da memória.

O que é uma união
O que é uma união?
Uma união é semelhante a uma estrutura, mas todos os membros compartilham o mesmo espaço de memória.
Exemplo:
union Data {
int i;
float f;
char str[20];
};
Aqui, i, f e str compartilham a mesma posição de memória.
Declarando e usando uma união
Declarando e usando uma união
As uniões são declaradas e usadas como as estruturas:
union Data d1;
Atribuindo valores:
d1.i = 10;
Apenas um membro pode armazenar um valor por vez.
Exemplo: usando uma união
Exemplo: usando uma união
Este programa demonstra como uma união armazena valores em uma posição de memória compartilhada.
#include <stdio.h>
union Data {
int i;
float f;
char str[20];
};
int main() {
union Data d1;
d1.i = 10;
printf("Integer: %d\n", d1.i);
d1.f = 20.5;
printf("Float: %f\n", d1.f);
return 0;
}Alocação de memória em uniões
Alocação de memória em uniões
Diferentemente das estruturas, o tamanho de uma união é determinado pelo seu maior membro.
Exemplo:
union Data {
int i; // 4 bytes
float f; // 4 bytes
char str[20]; // 20 bytes
};
O tamanho desta união é 20 bytes, não 28.
Diferença entre estruturas e uniões
Diferença entre estruturas e uniões
Estrutura:
- Cada membro tem uma posição de memória separada.
- O tamanho é a soma de todos os membros.
União:
- Todos os membros compartilham a mesma posição de memória.
- O tamanho é determinado pelo maior membro.
Exemplo: comparando estrutura e união
Exemplo: comparando estrutura e união
Este programa mostra o tamanho na memória de uma estrutura e de uma união.
#include <stdio.h>
struct StructExample {
int i;
float f;
char str[20];
};
union UnionExample {
int i;
float f;
char str[20];
};
int main() {
printf("Size of struct: %lu bytes\n", sizeof(struct StructExample));
printf("Size of union: %lu bytes\n", sizeof(union UnionExample));
return 0;
}Quando usar uniões
Quando usar uniões?
As uniões são úteis quando:
- A eficiência de memória é uma prioridade.
- Uma variável precisa armazenar tipos diferentes em momentos diferentes.
- É necessário trabalhar com registradores de hardware.
Resumo
Resumo
Nesta lição, você aprendeu:
- Como as uniões funcionam e como economizam memória.
- A diferença entre estruturas e uniões.
- Como usar uniões em situações práticas.
Em seguida, exploraremos as enumerações em C!

Perguntas Frequentes
A aula “Uniões e eficiência de memória” é grátis?
Sim — o texto completo de “Uniões e eficiência de memória” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C Academy, atualize para CoddyKit PRO. O curso de C Academy inclui 3 aulas no total.
O que vou aprender em “Uniões e eficiência de memória”?
Entenda as diferenças entre struct e union e como as uniões otimizam o uso da memória. Você pratica C Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C Academy?
Nenhuma experiência prévia é necessária. C Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.
Quanto tempo leva a aula “Uniões e eficiência de memória”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C Academy?
Sim. Cada aula de C Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Definição e uso de estruturas
- Uniões e eficiência de memória
- Enumerações (enum)