Maison >développement back-end >C++ >Comment implémenter des indicateurs Enum en C sans bibliothèques externes ?
Comment implémenter des indicateurs Enum en C sans bibliothèques externes
En C, contrairement à C# où l'attribut [Flags] rationalise l'utilisation d'énumérations comme indicateurs, il est nécessaire d'avoir une approche personnalisée pour obtenir des résultats similaires fonctionnalité.
Pour définir des indicateurs comme des énumérations, nous pouvons créer des opérateurs de bits pour l'énumération :
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
Cela nous permet de utilisez des opérateurs comme | pour combiner des drapeaux :
// Declare a variable of type AnimalFlags AnimalFlags seahawk; // Set the flags using the | operator seahawk = CanFly | EatsFish | Endangered;
Cela garantit à la fois la sécurité du type et l'utilisation prévue des drapeaux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!