0Pricing
C Academy · Aula

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.
Uniões e eficiência de memória — ilustração 1

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!

Uniões e eficiência de memória — ilustração 10

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

  1. Definição e uso de estruturas
  2. Uniões e eficiência de memória
  3. Enumerações (enum)
← Voltar para C Academy