So implementieren Sie Enum-Flags in C ohne externe Bibliotheken
In C, anders als in C#, wo das Attribut [Flags] vorhanden ist Optimiert die Verwendung von Enumerationen als Flags, ist ein benutzerdefinierter Ansatz erforderlich, um ähnliches zu erreichen Funktionalität.
Um Flags als Aufzählungen zu definieren, können wir Bitoperatoren für die Aufzählung erstellen:
enum AnimalFlags { HasClaws = 1, CanFly = 2, EatsFish = 4, Endangered = 8 }; inline AnimalFlags operator|(AnimalFlags a, AnimalFlags b) { return static_cast<AnimalFlags>(static_cast<int>(a) | static_cast<int>(b)); } // Define the rest of the bit operators here
Dies ermöglicht uns Verwenden Sie Operatoren wie | um Flags zu kombinieren:
// Declare a variable of type AnimalFlags AnimalFlags seahawk; // Set the flags using the | operator seahawk = CanFly | EatsFish | Endangered;
Dies gewährleistet sowohl die Typsicherheit als auch die beabsichtigte Verwendung der Flags.
Das obige ist der detaillierte Inhalt vonWie implementiert man Enum-Flags in C ohne externe Bibliotheken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!