C enum (optælling)

I denne vejledning lærer du om enum (enumeration) i C-programmering ved hjælp af eksempler.

I C-programmering er en optællingstype (også kaldet enum) en datatype, der består af integrerede konstanter. For at definere enums enumbruges nøgleordet.

 enum-flag (const1, const2,…, constN); 

Som standard er const1 0, const2 er 1 og så videre. Du kan ændre standardværdier for enum-elementer under erklæring (hvis nødvendigt).

 // Ændring af standardværdier for enum-konstanter enum-kulør (klub = 0, diamanter = 10, hjerter = 20, spar = 3,);

Opregnet typedeklaration

Når du definerer en enumtype, oprettes blueprintet til variablen. Sådan kan du oprette variabler af enumtyper.

enum boolean (falsk, sand); enum boolsk kontrol; // erklærer en enum-variabel

Her enum booleanoprettes en variabel kontrol af typen .

Du kan også erklære enum-variabler som denne.

 enum boolsk (falsk, sand) check; 

Her er værdien af falselig med 0, og værdien af trueer lig med 1.

Eksempel: Optællingstype

 #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; ) 

Produktion

 Dag 4

Hvorfor bruges enums?

En enum-variabel kan kun tage en værdi. Her er et eksempel for at demonstrere det,

 #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; ) 

Produktion

 Størrelse på enum-variabel = 4 byte

Her får vi 4, fordi størrelsen på inter 4 byte.

Dette gør enum til et godt valg at arbejde med flag.

Hvordan bruges enums til flag?

Lad os tage et eksempel,

 enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button; 

Antag at du designer en knap til Windows-applikation. Du kan indstille flag ITALIA, BOLD og UNDERSTREG til at arbejde med tekst.

Der er en grund til, at alle de integrerede konstanter har en styrke på 2 i ovenstående pseudokode.

 // I binær ITALIK = 00000001 FOLD = 00000010 UNDERSTREGNING = 00000100 

Da de integrerede konstanter har en styrke på 2, kan du kombinere to eller flere flag på én gang uden at overlappe hinanden ved hjælp af bitvis ELLER | operatør. Dette giver dig mulighed for at vælge to eller flere flag på én gang. For eksempel,

 #include enum designFlags ( BOLD = 1, ITALICS = 2, UNDERLINE = 4 ); int main() ( int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 printf("%d", myDesign); return 0; ) 

Produktion

 5

Når output er 5, ved du altid, at der bruges fed og understregning.

Du kan også tilføje flag i henhold til dine krav.

 hvis (myDesign & ITALICS) (// kode til kursiv)

Her har vi tilføjet kursiv til vores design. Bemærk, kun kode for kursiv er skrevet inde i ifudsagnet.

Du kan opnå næsten alt i C-programmering uden at bruge enumerationer. De kan dog være ret praktiske i visse situationer.

Interessante artikler...