0Pricing
C Academy · Aula

Definindo enums

Crie valores nomeados legíveis.

Definindo enums é uma aula grátis de C Academy no CoddyKit. Esta é a aula 1 de 4. 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 4 aulas no total.

O que é uma Enumeração?

Uma enumeração (enum) é um tipo definido pelo usuário que agrupa um conjunto de constantes inteiras nomeadas.

Em vez de lembrar que 0 significa segunda-feira e 1 significa terça-feira, você atribui nomes legíveis a esses números. Isso torna o código mais claro e menos propenso a erros.

Sintaxe Básica

Você declara uma enumeração com a palavra-chave enum, um nome de etiqueta e uma lista de nomes entre chaves.

Cada nome se torna uma constante que você pode usar onde quer que um inteiro seja esperado.

enum Weekday { MON, TUE, WED, THU, FRI };

Os Valores Padrão Começam em 0

Por padrão, o primeiro nome vale 0, e cada nome seguinte vale um a mais que o anterior.

Assim, em enum Weekday, MON é 0, TUE é 1, WED é 2 e assim por diante.

#include <stdio.h>
enum Weekday { MON, TUE, WED, THU, FRI };
int main(void) {
    printf("%d %d %d\n", MON, TUE, WED);
    return 0;
}

Declarando uma Variável de Enumeração

Depois que um tipo de enumeração existe, você pode criar variáveis desse tipo.

A variável contém um dos valores nomeados. Internamente, ela é apenas um int.

#include <stdio.h>
enum Weekday { MON, TUE, WED, THU, FRI };
int main(void) {
    enum Weekday today = WED;
    printf("today = %d\n", today);
    return 0;
}

Por que as Enumerações Melhoram a Legibilidade

Compare if (state == 2) com if (state == PAUSED).

A segunda forma é autoexplicativa. As enumerações permitem que o compilador acompanhe o significado enquanto você lê valores nomeados e claros, em vez de números misteriosos.

enum Status { RUNNING, PAUSED, STOPPED };

Usando Enumerações com switch

As enumerações combinam naturalmente com instruções switch. Cada valor nomeado se torna um rótulo de caso claro.

Esse é um dos usos mais comuns de enumerações no mundo real.

#include <stdio.h>
enum Status { RUNNING, PAUSED, STOPPED };
int main(void) {
    enum Status s = PAUSED;
    switch (s) {
        case RUNNING: printf("running\n"); break;
        case PAUSED:  printf("paused\n");  break;
        case STOPPED: printf("stopped\n"); break;
    }
    return 0;
}

Enumerações são Apenas Inteiros

As constantes de enumeração são intercambiáveis com inteiros. Você pode fazer operações aritméticas e comparações com elas.

Essa flexibilidade é útil, mas também significa que C não impedirá você de armazenar um número fora do intervalo.

#include <stdio.h>
enum Level { LOW, MID, HIGH };
int main(void) {
    enum Level next = LOW + 1;
    printf("%d\n", next);
    return 0;
}

Enumerações Anônimas

Você pode omitir o nome da etiqueta se precisar apenas das constantes, e não de um tipo nomeado.

Essa é uma forma rápida de definir um grupo de constantes inteiras relacionadas.

#include <stdio.h>
enum { RED, GREEN, BLUE };
int main(void) {
    printf("%d %d %d\n", RED, GREEN, BLUE);
    return 0;
}

Convenções de Nomenclatura

Por convenção, os nomes das constantes de enumeração são escritos em UPPER_CASE, como as macros.

Isso indica aos leitores que o valor é uma constante fixa. O nome da etiqueta geralmente usa CamelCase ou PascalCase.

enum TrafficLight { LIGHT_RED, LIGHT_YELLOW, LIGHT_GREEN };

Combinando com typedef

Escrever enum Weekday em todos os lugares é verboso. Um typedef permite usar um nome curto.

Depois do typedef, você pode declarar variáveis como Weekday today; sem a palavra-chave enum.

#include <stdio.h>
typedef enum { MON, TUE, WED } Weekday;
int main(void) {
    Weekday d = TUE;
    printf("%d\n", d);
    return 0;
}

Escopo das Constantes de Enumeração

Os nomes das constantes de enumeração compartilham o mesmo espaço de nomes que os identificadores comuns em seu escopo.

Isso significa que duas enumerações no mesmo escopo não podem reutilizar o mesmo nome de constante. Escolha nomes distintos para evitar conflitos.

enum A { OPEN, CLOSED };
enum B { LOCKED, UNLOCKED };

Verificação Rápida

Teste sua compreensão dos valores padrão das enumerações.

Recapitulação

Uma enumeração define constantes inteiras nomeadas. A primeira vale 0 e cada nome seguinte vale um a mais, a menos que você especifique o contrário.

As enumerações tornam o código legível, combinam bem com switch e podem ser encurtadas com typedef. Em seguida, exploraremos valores e intervalos personalizados.

Perguntas Frequentes

A aula “Definindo enums” é grátis?

Sim — o texto completo de “Definindo enums” é 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 4 aulas no total.

O que vou aprender em “Definindo enums”?

Crie valores nomeados legíveis. 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 1 de 4.

Quanto tempo leva a aula “Definindo enums”?

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. Definindo enums
  2. Valores e intervalos de enums
  3. Variáveis const
  4. Constantes #define
← Voltar para C Academy