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 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-30 16:37:15618parcourir

How to Implement Enum Flags in C   Without External Libraries?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn