Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Dominando Enums em C: Definição, Declaração e Operações de Flags

Enums em C

Explore como definir, declarar e utilizar enums em C—com exemplos práticos, técnicas de flags e insights sobre tamanho.

Em C, uma enumeração (enum) é um tipo que agrupa um conjunto de constantes integrais nomeadas, oferecendo intenção mais clara e segurança de tipo em tempo de compilação.

 enum flag {const1, const2, ..., constN}; 

Por padrão, const1 é 0, const2 é 1, e assim por diante. Você pode sobrescrever esses valores na declaração se necessário.

 // Personalizando constantes do enum enum naipe { paus = 0, ouros = 10, copas = 20, espadas = 3, }; 

Declaração de tipo enumerado

Definir um enum cria um novo tipo que pode ser usado para variáveis. Veja como declarar e instanciar um.

 enum booleano {falso, verdadeiro}; enum booleano verifica; // declaração de variável 

A variável verifica é agora do tipo enum booleano. Seus valores mapeiam para falso = 0 e verdadeiro = 1.

 enum booleano {falso, verdadeiro} verifica; 

Exemplo: Enumeração de dias da semana

 #include <stdio.h> enum semana {Domingo, Segunda, Terca, Quarta, Quinta, Sexta, Sabado}; int main() { enum semana hoje = Quarta; printf("Dia %d", hoje + 1); return 0; } 

Saída

Dia 4

Por que usar Enums?

Variáveis enum armazenam um único valor nomeado, tornando o código auto-documentado. Elas também ocupam o mesmo armazenamento que um int por padrão, tipicamente 4 bytes na maioria das plataformas.

 #include <stdio.h> enum naipe {paus = 0, ouros = 10, copas = 20, espadas = 3} carta; int main() { carta = paus; printf("Tamanho da variável enum = %d bytes", sizeof(carta)); return 0; } 

Saída

Tamanho da variável enum = 4 bytes

Este tamanho é consistente com o tipo int subjacente, embora o tamanho exato possa variar por compilador e arquitetura.


Usando Enums para Flags

Enums se destacam na representação de flags quando cada constante é uma potência distinta de dois. Isso permite combinar flags com OR bitwise e testá-las com AND bitwise.

 #include <stdio.h> enum flagsDesign {ITALICO = 1, NEGRITO = 2, SUBLINHADO = 4} botao; 

Como os valores são potências de dois:

 // Representação binária ITALICO = 00000001 NEGRITO = 00000010 SUBLINHADO = 00000100 

Você pode combiná-los:

 #include <stdio.h> enum flagsDesign {NEGRITO = 1, ITALICO = 2, SUBLINHADO = 4}; int main() { int meuDesign = NEGRITO | SUBLINHADO; // 00000001 | 00000100 = 00000101 printf("%d", meuDesign); return 0; } 

Saída

5

Uma saída de 5 indica que tanto NEGRITO quanto SUBLINHADO estão ativos.

Para verificar uma flag específica:

 if (meuDesign & ITALICO) { // trata itálico } 

Embora você possa alcançar muitos resultados sem enums, eles fornecem uma maneira robusta e type-safe de gerenciar constantes relacionadas—especialmente para operações de flags.

Linguagem C

  1. C# Hello World – Criando Sua Primeira Aplicação C#
  2. Entendendo Palavras-chave e Identificadores em C#: Regras, Listas e Boas Práticas
  3. Domine Variáveis e Tipos de Dados Primitivos em C#: Guia Completo
  4. Operadores em C# – Guia Completo dos Operadores em C#
  5. Dominando Operadores Bitwise e Bit Shift em C#: Guia Abrangente
  6. Fundamentos de C#: Essenciais de Entrada e Saída
  7. Expressões, Instruções e Blocos em C#: Guia Completo com Exemplos Práticos
  8. Dominando Comentários em C#: Tipos, Boas Práticas e Documentação XML
  9. Dominando a Instrução Switch em C#: Sintaxe, Exemplos e Boas Práticas
  10. Operador Ternário em C#: Guia Conciso para Expressões Condicionais