Enumerador
Frequentemente, trabalhamos com variáveis que podem assumir valores dentro de um conjunto muito específico. Um produto, por exemplo, pode ser classificado num conjunto específico de categorias: alimentício e limpeza.
Para essas situações, podemos trabalhar com o conceito de enumerador (enum
). Na prática, um enumerador é formado por constantes, que serão armazenadas como inteiros positivos.
Na atribuição de valores a um enumerador, podem ser utilizadas as constantes predefinidas pelo desenvolvedor ou números inteiros.
✍🏻 Definindo um enumerador
A sintaxe para definição de um enumerador é bastante simples:
enum nomedoenumerador { valorespossiveis };
Aplicando à categoria de produtos:
enum categoria { ALIMENTACAO, LIMPEZA };
Apesar de visualizarmos as constantes como strings, os valores armazenados na variável desse tipo serão inteiros, iniciando em 0. Assim, ALIMENTACAO
será armazenada como 0
, enquanto LIMPEZA
será armazenada como 1
.
⭐ Criando uma variável enum
Para criar uma variável do tipo enum
, usamos a seguinte sintaxe:
enum categoria catProd = ALIMENTACAO;
Ao tentarmos imprimir o valor de catProd
, teremos como saída o valor 0
, como aborado no início da página.
#include <stdio.h>
enum categoria { ALIMENTACAO, LIMPEZA };
int main()
{
enum categoria catProd = ALIMENTACAO;
printf("Categoria: %d", catProd);
return 0;
}
🧮 Atribuição de valores
Como variáveis enumeradoras são armazenadas como números inteiros, a atribuição de valores inteiros é normalmente aceita, como mostra o exemplo a seguir:
#include <stdio.h>
enum categoria { ALIMENTACAO, LIMPEZA };
int main()
{
enum categoria catProd = 1;
printf("Categoria: %d", catProd);
return 0;
}
Da mesma forma, operações aritméticas com as constantes podem ser efetuadas, embora não seja o ideal:
#include <stdio.h>
enum categoria { ALIMENTACAO, LIMPEZA };
int main()
{
enum categoria catProd = ALIMENTACAO + LIMPEZA;
printf("Categoria: %d", catProd);
return 0;
}
🚀 Enumerador com typedef
Podemos facilitar o processo usando o comando typedef
para definirmos um tipo de dado.
#include <stdio.h>
typedef enum categoria { ALIMENTACAO, LIMPEZA } categoria;
int main()
{
categoria catProd = ALIMENTACAO;
return 0;
}
📖 Bibliografia
Livros