Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C-Enums meistern: Definition, Deklaration & Flag-Operationen

C-Enums

Entdecken Sie, wie Sie Enums in C definieren, deklarieren und nutzen – komplett mit praktischen Beispielen, Flag-Techniken und Größen-Einblicken.

In C ist eine Enumeration (enum) ein Typ, der eine Menge benannter ganzzahliger Konstanten gruppiert, was klarere Absicht und Compile-Time-Typsicherheit bietet.

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

Standardmäßig entspricht const1 0, const2 1 usw. Sie können diese Werte bei der Deklaration überschreiben, falls nötig.

// Enum-Konstanten anpassen
enum suit {
    club = 0,
    diamonds = 10,
    hearts = 20,
    spades = 3,
};

Enumerierter Typ deklarieren

Die Definition eines Enums erstellt einen neuen Typ, der für Variablen verwendet werden kann. Hier sehen Sie, wie man einen deklariert und instanziiert.

enum boolean {false, true};
enum boolean check; // Variablendeklaration
check ist nun vom Typ enum boolean. Ihre Werte entsprechen false = 0 und true = 1.

enum boolean {false, true} check;

Beispiel: Wochentag-Enumeration

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

Ausgabe

Day 4

Warum Enums verwenden?

Enum-Variablen halten einen einzelnen benannten Wert, was Code selbstdokumentierend macht. Sie belegen standardmäßig denselben Speicher wie ein int, typischerweise 4 Bytes auf den meisten Plattformen.

#include <stdio.h>
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;
}

Ausgabe

Size of enum variable = 4 bytes

Diese Größe entspricht dem zugrunde liegenden int-Typ, kann jedoch je nach Compiler und Architektur variieren.


Enums für Flags verwenden

Enums eignen sich hervorragend zur Darstellung von Flags, wenn jede Konstante eine eindeutige Zweierpotenz ist. Dies ermöglicht die Kombination von Flags mit bitweisem OR und das Testen mit bitweisem AND.

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

Da die Werte Zweierpotenzen sind:

// Binärdarstellung
ITALICS = 00000001
BOLD = 00000010
UNDERLINE = 00000100

Sie können sie kombinieren:

#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;
}

Ausgabe

5

Um ein bestimmtes Flag zu prüfen:

if (myDesign & ITALICS) {
    // Italics behandeln
}

Obwohl Sie viele Ergebnisse auch ohne Enums erreichen können, bieten sie einen robusten, typsicheren Weg, verwandte Konstanten zu verwalten – besonders für Flag-Operationen.

C Sprache

  1. C# Hello World – Ihre erste C#-Anwendung erstellen
  2. C# Keywords und Identifiers verstehen: Regeln, Listen und Best Practices
  3. C# Variablen & Primitive Datentypen meistern: Der komplette Guide
  4. C# Operatoren – Umfassender Leitfaden zu Operatoren in C#
  5. C# Bitweise und Bit-Shift-Operatoren meistern: Umfassender Leitfaden
  6. C# Grundlagen: Eingabe und Ausgabe Essentials
  7. C# Ausdrücke, Anweisungen & Blöcke: Umfassender Leitfaden mit Beispielen
  8. C# Kommentare meistern: Arten, Best Practices und XML-Dokumentation
  9. C# Switch Statement meistern: Syntax, Beispiele & Best Practices
  10. C# Ternärer Operator: Knapper Leitfaden zu bedingten Ausdrücken