V tej vadnici boste s pomočjo primerov spoznali enum (enumeration) v programiranju C.
Pri programiranju C je tip oštevilčenja (imenovan tudi enum) podatkovni tip, ki je sestavljen iz integralnih konstant. Za določanje naštetih enum
se uporablja ključna beseda.
zastavica enum (const1, const2,…, constN);
Privzeto je const1 0, const2 1 in tako naprej. Med deklaracijo lahko spremenite privzete vrednosti elementov naštevanja (če je potrebno).
// Spreminjanje privzetih vrednosti konstant enum enum obleka (klub = 0, diamanti = 10, srca = 20, pike = 3,);
Izštevana deklaracija tipa
Ko definirate vrsto enum, se ustvari načrt spremenljivke. Tukaj je opisano, kako lahko ustvarite spremenljivke vrst enum.
enum boolean (false, true); logično preverjanje enum; // razglasitev spremenljivke enum
Tu se ustvari preverjanje spremenljivke tipa enum boolean
.
Tako spremenljivke enum lahko tudi prijavite.
enum boolean (false, true) check;
Tu je vrednost false
enaka 0 in vrednost true
1 enaka 1.
Primer: vrsta štetja
#include enum week (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday); int main() ( // creating today variable of enum week type enum week today; today = Wednesday; printf("Day %d",today+1); return 0; )
Izhod
4. dan
Zakaj se uporabljajo enume?
Spremenljivka enum ima lahko samo eno vrednost. Tu je primer, ki to dokaže,
#include enum suit ( club = 0, diamonds = 10, hearts = 20, spades = 3 ) card; int main() ( card = club; printf("Size of enum variable = %d bytes", sizeof(card)); return 0; )
Izhod
Velikost spremenljivke naštevanja = 4 bajta
Tukaj dobimo 4, ker je velikost int
4 bajtov.
Zaradi tega je enum dobra izbira za delo z zastavami.
Kako uporabiti enume za zastave?
Vzemimo primer,
enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button;
Denimo, da načrtujete gumb za aplikacijo Windows. Za delo z besedilom lahko nastavite zastavice ITALICS, BOLD in UNDERLINE.
Obstaja razlog, zakaj so vse integralne konstante stopnje 2 v zgornji psevdokodi.
// V binarni obliki ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100
Ker so integralne konstante stopnje 2, lahko hkrati kombinirate dve ali več zastavic, ne da bi se prekrivali z uporabo bitov ALI | operater. To vam omogoča izbiro dveh ali več zastav hkrati. Na primer
#include enum designFlags ( BOLD = 1, ITALICS = 2, UNDERLINE = 4 ); int main() ( int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 printf("%d", myDesign); return 0; )
Izhod
5.
Ko je izhod 5, vedno veste, da se uporablja krepko in podčrtano.
Prav tako lahko dodate zastavice glede na vaše zahteve.
if (myDesign & ITALICS) (// koda za ležeče)
Tu smo našemu dizajnu dodali ležečo pisavo. Upoštevajte, da je v if
stavku napisana le koda za poševno pisavo .
V programiranju C lahko dosežete skoraj vse, ne da bi uporabljali naštevanja. Vendar so lahko v določenih situacijah zelo priročni.