Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Dominando enums en C: Definición, declaración y operaciones de banderas

Enums en C

Explore cómo definir, declarar y aprovechar enums en C—completo con ejemplos prácticos, técnicas de banderas e información de tamaño.

En C, una enumeración (enum) es un tipo que agrupa un conjunto de constantes enteras nombradas, ofreciendo intención más clara y seguridad de tipos en tiempo de compilación.

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

Por defecto, const1 es igual a 0, const2 es igual a 1, y así sucesivamente. Puede sobrescribir estos valores en la declaración si es necesario.

 // Personalizando constantes de enum
enum suit { club = 0, diamonds = 10, hearts = 20, spades = 3, }; 

Declaración de tipo enumerado

Definir un enum crea un nuevo tipo que puede usarse para variables. Así es como declarar e instanciar uno.

 enum boolean {false, true};
enum boolean check; // declaración de variable 

La variable check ahora es de tipo enum boolean. Sus valores se mapean a false = 0 y true = 1.

 enum boolean {false, true} check; 

Ejemplo: Enumeración de días de la semana

 #include <stdio.h>
enum week {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};
int main() {
    enum week today = Wednesday;
    printf("Día %d", today + 1);
    return 0;
} 

Salida

Día 4

¿Por qué usar enums?

Las variables enum contienen un único valor nombrado, haciendo el código auto-documentado. También ocupan el mismo almacenamiento que un int por defecto, típicamente 4 bytes en la mayoría de plataformas.

 #include <stdio.h>
enum suit {club = 0, diamonds = 10, hearts = 20, spades = 3} card;
int main() {
    card = club;
    printf("Tamaño de variable enum = %d bytes", sizeof(card));
    return 0;
} 

Salida

Tamaño de variable enum = 4 bytes

Este tamaño es consistente con el tipo int subyacente, aunque el tamaño exacto puede variar por compilador y arquitectura.


Uso de enums para banderas

Los enums sobresalen representando banderas cuando cada constante es una potencia distinta de dos. Esto permite combinar banderas con OR bit a bit y probarlas con AND bit a bit.

 #include <stdio.h>
enum designFlags {ITALICS = 1, BOLD = 2, UNDERLINE = 4} button; 

Porque los valores son potencias de dos:

 // Representación binaria
ITALICS = 00000001
BOLD = 00000010
UNDERLINE = 00000100 

Puede combinarlos:

 #include <stdio.h>
enum designFlags {BOLD = 1, ITALICS = 2, UNDERLINE = 4};
int main() {
    int myDesign = BOLD | UNDERLINE; // 00000001 | 00000100 = 00000101
    printf("%d", myDesign);
    return 0;
} 

Salida

5

Una salida de 5 indica que tanto BOLD como UNDERLINE están activos.

Para verificar una bandera específica:

 if (myDesign & ITALICS) {
    // manejar itálicas
} 

Aunque puede lograr muchos resultados sin enums, estos proporcionan una forma robusta y type-safe de manejar constantes relacionadas—especialmente para operaciones de banderas.

Lenguaje C

  1. C# Hola Mundo – Construyendo su primera aplicación en C#
  2. Entendiendo palabras clave e identificadores en C#: Reglas, listas y mejores prácticas
  3. Domine variables y tipos de datos primitivos en C#: Guía completa
  4. Operadores en C# – Guía completa de operadores en C#
  5. Dominando operadores bit a bit y de desplazamiento en C#: Guía completa
  6. Fundamentos de C#: Entrada y salida esenciales
  7. Expresiones, sentencias y bloques en C#: Guía completa con ejemplos prácticos
  8. Dominando los comentarios en C#: Tipos, mejores prácticas y documentación XML
  9. Dominando la sentencia switch en C#: Sintaxis, ejemplos y mejores prácticas
  10. Operador ternario en C#: Guía concisa para expresiones condicionales
  11. Sentencia break en C#: Cómo y cuándo usarla