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
Libérer: 2024-12-30 16:37:15
original
626 Les gens l'ont consulté

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
Copier après la connexion

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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal