Neste tutorial, você aprenderá sobre enum (enumeração) na programação C com a ajuda de exemplos.
Na programação C, um tipo de enumeração (também chamado de enum) é um tipo de dados que consiste em constantes inteiras. Para definir enums, a enum
palavra-chave é usada.
sinalizador enum (const1, const2,…, constN);
Por padrão, const1 é 0, const2 é 1 e assim por diante. Você pode alterar os valores padrão dos elementos enum durante a declaração (se necessário).
// Alterar os valores padrão das constantes enum enum suit (clube = 0, diamantes = 10, copas = 20, espadas = 3,);
Declaração de tipo enumerado
Quando você define um tipo de enum, o blueprint para a variável é criado. Veja como você pode criar variáveis de tipos enum.
enum boolean (falso, verdadeiro); enum boolean check; // declarando uma variável enum
Aqui, uma verificação de variável do tipo enum boolean
é criada.
Você também pode declarar variáveis enum como esta.
verificação enum boolean (falso, verdadeiro);
Aqui, o valor de false
é igual a 0 e o valor de true
é igual a 1.
Exemplo: tipo de enumeração
#include enum week (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday); int main() ( // creating today variable of enum week type enum week today; today = Wednesday; printf("Day %d",today+1); return 0; )
Resultado
Dia 4
Por que enums são usados?
Uma variável enum pode ter apenas um valor. Aqui está um exemplo para demonstrar isso,
#include enum suit ( club = 0, diamonds = 10, hearts = 20, spades = 3 ) card; int main() ( card = club; printf("Size of enum variable = %d bytes", sizeof(card)); return 0; )
Resultado
Tamanho da variável enum = 4 bytes
Aqui, estamos obtendo 4 porque o tamanho de int
é 4 bytes.
Isso torna enum uma boa escolha para trabalhar com sinalizadores.
Como usar enums para sinalizadores?
Vamos dar um exemplo,
enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button;
Suponha que você esteja criando um botão para um aplicativo do Windows. Você pode definir sinalizadores ITALICS, BOLD e UNDERLINE para trabalhar com texto.
Há uma razão pela qual todas as constantes integrais são uma potência de 2 no pseudocódigo acima.
// Em binário ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100
Uma vez que as constantes integrais são uma potência de 2, você pode combinar dois ou mais sinalizadores de uma vez sem sobrepor usando bit a bit OR | operador. Isso permite que você escolha dois ou mais sinalizadores de uma vez. Por exemplo,
#include enum designFlags ( BOLD = 1, ITALICS = 2, UNDERLINE = 4 ); int main() ( int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 printf("%d", myDesign); return 0; )
Resultado
5
Quando a saída é 5, você sempre sabe que negrito e sublinhado são usados.
Além disso, você pode adicionar sinalizadores de acordo com seus requisitos.
if (myDesign & ITALICS) (// codificar para itálico)
Aqui, adicionamos itálico ao nosso design. Observe, apenas o código para itálico é escrito dentro da if
instrução.
Você pode realizar quase tudo na programação C sem usar enumerações. No entanto, eles podem ser muito úteis em certas situações.