如何在沒有外部庫的情況下在C 中實現枚舉標誌
在C 中,與C# 中的[Flags]屬性不同使用枚舉作為標誌進行簡化,需要一種自訂方法來實現類似的效果
要將標誌定義為枚舉,我們可以為枚舉建立位元運算符:
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
這使我們能夠使用像 |這樣的運算子組合標誌:
// Declare a variable of type AnimalFlags AnimalFlags seahawk; // Set the flags using the | operator seahawk = CanFly | EatsFish | Endangered;
這確保了類型安全和標誌的預期用途。
以上是如何在沒有外部函式庫的情況下在 C 中實現枚舉標誌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!