Enumeração ou Enum em C é um tipo especial de tipo de dados definido pelo usuário. Consiste em integrais constantes ou inteiros que recebem nomes de um usuário. O uso de enum em C para nomear os valores inteiros torna o programa inteiro fácil de aprender, entender e manter pelo mesmo ou até por programador diferente.
Sintaxe para definir Enum em C
Um enum é definido usando a palavra-chave’enum’em C, e o uso de uma vírgula separa as constantes dentro. A sintaxe básica para definir um enum é:
enum enum_name {int_const1, int_const2, int_const3,…. int_constN};
Na sintaxe acima, o valor padrão de int_const1 é 0, int_const2 é 1, int_const3 é 2 e assim por diante. No entanto, você também pode alterar esses valores padrão ao declarar o enum. Abaixo está um exemplo de um enum denominado cars e como você pode alterar os valores padrão.
enum cars {BMW, Ferrari, Jeep, Mercedes-Benz};
Aqui, o padrão os valores das constantes são:
BMW=0, Ferrari=1, Jeep=2 e Mercedes-Benz=3. No entanto, para alterar os valores padrão, você pode definir o enum da seguinte maneira:
enum cars {
BMW=3,
Ferrari=5,
Jeep=0,
Mercedes-Benz=1
};
Adicione outra estrela à sua avaliação de desempenho
Aprenda com especialistas do setor GRATUITAMENTE Comece a aprender
Declaração de tipo enumerado para criar um Variável
Semelhante a tipos de dados predefinidos como int e char, você também pode declarar uma variável para enum e outros tipos de dados definidos pelo usuário. Veja como criar uma variável para enum.
enum condição (verdadeiro, falso);//declarando o enum
enum condição e;//criando uma variável do tipo condição
Suponha que declaramos um tipo enum denominado condição; podemos criar uma variável para esse tipo de dados, conforme mencionado acima. Também podemos convergir as duas declarações e escrevê-las como:
enum condição (verdadeiro, falso) e;
Para a declaração acima, o valor padrão para verdadeiro será 1, e para falso será 0.
Como criar e implementar Enum no programa C
Agora que sabemos como definir um enum e criar variáveis para ele, vamos ver alguns exemplos para entender como implementar enum em programas C.
Exemplo 1: Imprimir os valores dos dias da semana
#include
enum dias {domingo=1, segunda, terça, quarta, quinta, sexta, sábado};
int main () {
//imprimindo os valores dos dias da semana
para (int i=domingo; i <=sábado; i ++) {
printf (“% d,”, i);
}
retornar 0;
}
Saída:
Em o código acima, declaramos um enum chamado days, que consiste no nome dos dias da semana começando no domingo. Em seguida, inicializamos o valor de domingo como 1. Isso atribuirá o valor para os outros dias como o valor anterior mais 1. Para iterar através do enum e imprimir os valores de cada dia, criamos um loop for e inicializamos o valor para i como domingo.
Exemplo 2: Atribuição e obtenção de valores personalizados de elementos Enum
#include
contêineres enum {
cont1=5,
cont2=7,
cont3=3,
cont4=8
};
int main () {
//Inicializando uma variável para armazenar enums
enum containers cur_cont=cont2;
printf (“Valor de cont2 é=% d \ n”, cur_cont);
cur_cont=cont3;
printf (“Valor de cont3 é=% d \ n”, cur_cont);
cur_cont=cont1;
printf (“O valor dos corações é=% d \ n”, cur_cont);
return 0;
}
Resultado:
Declaramos um enum chamado containe rs com quatro recipientes diferentes como os elementos no código acima. Em seguida, atribuímos valores personalizados aos elementos e inicializamos a variável para enum várias vezes para imprimir a saída relevante.
Por que usamos enums em C?
Usamos enums para constantes, ou seja, quando queremos que uma variável tenha apenas um conjunto específico de valores. Por exemplo, para enum de dias da semana, pode haver apenas sete valores, pois há apenas sete dias em uma semana. No entanto, uma variável pode armazenar apenas um valor de cada vez. Podemos usar enums em C para várias finalidades; alguns dos usos de enums são:
Para armazenar valores constantes (por exemplo, dias da semana, meses, direções, cores em um arco-íris) Para usar sinalizadores em C Ao usar instruções switch-case em C
Exemplo de uso de Enum na instrução Switch Case
Neste exemplo, criaremos um enum com todas as 4 direções, Norte, Leste, Oeste e Sul como constantes. Em seguida, usaremos as instruções switch case para alternar entre os elementos de direção e imprimir a saída com base no valor da variável para as direções enum.
#include
enum direções {Norte=1, Leste, Oeste, Sul};
int main () {
enum direções d;
d=Oeste;
switch (d) {
case North:
printf (“Estamos indo em direção ao norte.”);
break;
case East:
Printf (“Estamos indo para o leste.”);
break;
case West:
printf (“Estamos indo para o oeste.”) ;
break;
case South:
printf (“Estamos indo em direção ao sul”);
break;
}
return 0;
}
Resultado:
Exemplo de uso de Enum em C para sinalizadores
Podemos usar enum em C para sinalizadores, mantendo os valores das constantes integrais em uma potência de 2. Isso nos permitirá escolher e combinar dois ou mais sinalizadores sem sobreposição com a ajuda do operador Bitwise OR (|). Vamos considerar o exemplo abaixo, onde definimos três sinalizadores: Cortar, Girar e Salvar para trabalhar com uma imagem.
Exemplo:
#include
enum designFlags {
CROP=1,
ROTATE=2,
SAVE=4
};
int main () {
int myExample=ROTATE | SALVAR;
printf (“% d”, meuExemplo);
retornar 0;
}
Resultado:
Se fizermos os cálculos para o código acima, é:
00000010 (ROTATE=2)
| 00000100 (SALVAR=4)
___________
00000110 (Saída=6)
Como você pode ver, nosso cálculo e a saída fornecida pelo programa são os mesmo. Isso conclui que podemos usar enum em C para sinalizadores. Além disso, podemos adicionar nossos sinalizadores personalizados.
Curso Full Stack Web Developer
Para se tornar um especialista em MEAN Stack Ver Curso
Pontos interessantes sobre a inicialização de Enum em C
Existem alguns fatos sobre a enum que vale a pena observar, tais como:
1. Vários nomes ou elementos de enum podem ter o mesmo valor. Aqui está um exemplo de dois elementos enum com um valor semelhante.
Exemplo:
#include
enum Cars {Jeep=1, BMW=0, Mercedes_Benz=0};
int main () {
printf (“% d,% d,% d”, Jeep, BMW, Mercedes_Benz);
return 0;
}
Resultado:
2. Se não atribuirmos valores personalizados a elementos enum, o compilador atribuirá a eles valores padrão a partir de 0. Por exemplo, o compilador atribuirá valores aos meses no exemplo abaixo, com janeiro sendo 0.
Exemplo:
#include
enum Meses {janeiro, fevereiro, março, abril, maio, junho, julho, agosto, setembro, outubro, novembro, dezembro} ;
int main () {
enum Meses m=maio;
printf (“O valor de maio em meses é% d”, m);
return 0;
}
Resultado:
3. Podemos fornecer valores para qualquer elemento de enum em qualquer ordem. Todos os elementos não atribuídos receberão o valor anterior + 1. O programa a seguir demonstra o mesmo.
Exemplo:
#include
enum weekdays {Sunday, Monday=2, Tuesday, Wednesday=6, Thursday, Friday=9, Saturday=12};
int main ()
{
printf (“% d% d% d% d% d% d% d”, domingo, segunda, terça,
quarta, quinta, sexta, sábado);
return 0;
}
Resultado:
4. Todos os valores atribuídos aos elementos de enum devem ser uma constante integral. Por exemplo, eles devem estar dentro da faixa de números inteiros mínimos e máximos possíveis.
5. Todos os elementos ou constantes enum devem ter um escopo exclusivo. Isso significa que um elemento não pode fazer parte de duas enums diferentes no mesmo programa, pois ele falhará durante a compilação. Aqui está um exemplo:
Exemplo:
#include
enum Cars {Mahindra, Jeep, BMW};
enum Luxury_Cars {BMW, Ferrari, Mercedes_Benz};
int main () {
return 0;
}
Resultado:
Enum em C vs. Macro
Semelhante a enum, você também pode usar a macro em C para definir constantes nomeadas. No entanto, o uso de enum em C é preferido, pois tem muitas vantagens sobre a macro. Dois dos principais benefícios são:
Enums segue as regras de”escopo”conforme discutido anteriormente (no último ponto da seção anterior). O compilador pode atribuir valores automaticamente aos elementos enum. Conseqüentemente, a declaração se torna mais fácil.
Avance sua carreira como desenvolvedor MEAN stack com o Desenvolvedor Web Full Stack-Programa MEAN Stack Master . Inscreva-se agora!
Conclusão
Neste artigo, você aprendeu tudo sobre enum em C e como usá-lo de maneira diferente. Se quiser saber mais sobre os fundamentos da programação C , inscreva-se em nosso plataforma SkillUp . A plataforma oferece cursos gratuitos em várias linguagens de programação, incluindo C e C ++. Você pode aproveitar a oportunidade para aprimorar suas habilidades de programação C e colocá-las em prática.
No mundo competitivo de hoje, os desenvolvedores full-stack são mais solicitados do que os profissionais com domínio em uma linguagem específica. Portanto, é de extrema importância aprender e dominar várias linguagens de programação. Isso é exatamente o que nosso Curso Full-Stack de Certificação de Desenvolvimento Web é feito para. O curso oferece tutoriais e aprendizado aplicado para se familiarizar com mais de 30 habilidades e ferramentas de programação. Opte pelo curso para se tornar o melhor e conseguir um emprego bem remunerado na área de desenvolvimento de software.