


Bagaimana untuk Melaksanakan Flag Enums dalam C tanpa Perpustakaan Luaran?
Dec 16, 2024 am 01:32 AMMenyesuaikan Enum Bendera dalam C
Dalam C , penghitungan (enum) ialah alat berkuasa untuk mewakili nilai diskret. Walau bagaimanapun, sintaks enum standard tidak mempunyai mekanisme terbina dalam untuk menganggapnya sebagai bendera. Artikel ini meneroka cara melaksanakan enum seperti bendera dalam C tanpa bergantung pada perpustakaan luaran.
Masalah:
Pertimbangkan contoh berikut:
enum AnimalFlags { HasClaws = 1, CanFly = 2, EatsFish = 4, Endangered = 8 }; int seahawkFlags = CanFly | EatsFish | Endangered;
Apabila anda cuba untuk menetapkan nilai bitwise ATAU kepada enum, pengkompil menimbulkan ralat disebabkan oleh ketidakpadanan penukaran int/enum.
Penyelesaian:
Penyelesaian terletak pada mentakrifkan operator bitwise untuk enum:
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 other operators as needed int seahawkFlags = animalFlags::CanFly | AnimalFlags::EatsFish | AnimalFlags::Endangered;
Dengan menyediakan operator bitwise , enum boleh dimanipulasi dengan cara seperti bendera. Selain itu, penggunaan keselamatan jenis memastikan bahawa hanya gabungan bendera yang sah diberikan kepada pembolehubah enum.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Flag Enums dalam C tanpa Perpustakaan Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Langkah Format Fungsi Fungsi C Langkah Penukaran Kes

Gulc: Perpustakaan C dibina dari awal

Apakah jenis nilai yang dikembalikan oleh fungsi bahasa C? Apa yang menentukan nilai pulangan?

Apakah definisi dan peraturan panggilan fungsi bahasa C dan apakah itu

Bagaimana Perpustakaan Templat St Standard (STL) berfungsi?

Di manakah nilai pulangan fungsi bahasa C yang disimpan dalam ingatan?

Penggunaan dan perkongsian frasa yang berbeza

Berapakah minimum biasa dari pembahagi umum maksimum fungsi bahasa C?
