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 enum
bruges 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 boolean
oprettes en variabel kontrol af typen .
Du kan også erklære enum-variabler som denne.
enum boolsk (falsk, sand) check;
Her er værdien af false
lig med 0, og værdien af true
er 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å int
er 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 if
udsagnet.
Du kan opnå næsten alt i C-programmering uden at bruge enumerationer. De kan dog være ret praktiske i visse situationer.