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.