I denna handledning lär du dig om enum (uppräkning) i C-programmering med hjälp av exempel.
I C-programmering är en uppräkningstyp (även kallad enum) en datatyp som består av integrerade konstanter. För att definiera enum används enum
nyckelordet.
enum-flagga (const1, const2,…, constN);
Som standard är const1 0, const2 är 1 och så vidare. Du kan ändra standardvärden för enum-element under deklarationen (om det behövs).
// Ändring av standardvärden för enum-konstanter enum-färg (klubb = 0, diamanter = 10, hjärtan = 20, spader = 3,);
Uppräknad typdeklaration
När du definierar en enumtyp skapas ritningen för variabeln. Så här kan du skapa variabler av enumtyper.
enum boolean (falskt, sant); enum boolesk check; // förklarar en enum-variabel
Här enum boolean
skapas en variabelkontroll av typen .
Du kan också deklarera enumvariabler som denna.
enum boolean (false, true) check;
Här är värdet av false
lika med 0 och värdet av true
är lika med 1.
Exempel: Uppräkningstyp
#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
Varför används enums?
En enum-variabel kan bara ta ett värde. Här är ett exempel för att demonstrera 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
Storleken på enum-variabeln = 4 byte
Här får vi 4 eftersom storleken int
är 4 byte.
Detta gör enum till ett bra val att arbeta med flaggor.
Hur använder jag enums för flaggor?
Låt oss ta ett exempel,
enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button;
Antag att du utformar en knapp för Windows-applikationen. Du kan ställa in flaggor ITALIEN, FETT och UNDERSTREP för att arbeta med text.
Det finns en anledning till att alla integralkonstanter har en effekt på 2 i ovanstående pseudokod.
// I binärt ITALIK = 00000001 FETT = 00000010 UNDERSTREP = 00000100
Eftersom integralkonstanterna har en effekt på 2 kan du kombinera två eller flera flaggor samtidigt utan att överlappa med bitvis ELLER | operatör. Detta gör att du kan välja två eller flera flaggor samtidigt. Till exempel,
#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 utdata är 5 vet du alltid att fetstil och understrykning används.
Du kan också lägga till flaggor enligt dina krav.
if (myDesign & ITALICS) (// kod för kursiv)
Här har vi lagt kursiv stil till vår design. Observera att endast kod för kursiv skrivs inuti if
uttalandet.
Du kan åstadkomma nästan vad som helst i C-programmering utan att använda uppräkningar. De kan dock vara ganska praktiska i vissa situationer.