In deze tutorial leer je met behulp van voorbeelden over enum (opsomming) in C-programmering.
In C-programmering is een opsommingstype (ook wel enum genoemd) een gegevenstype dat bestaat uit integrale constanten. Om enums te definiëren, wordt het enum
sleutelwoord gebruikt.
enum vlag (const1, const2,…, constN);
Standaard is const1 0, const2 is 1 enzovoort. U kunt de standaardwaarden van enum-elementen wijzigen tijdens het declareren (indien nodig).
// Veranderen van standaardwaarden van enum-constanten enum-kleur (club = 0, ruiten = 10, harten = 20, schoppen = 3,);
Opgesomde typeaangifte
Wanneer u een opsommingstype definieert, wordt de blauwdruk voor de variabele gemaakt. Hier leest u hoe u variabelen van opsommingstypen kunt maken.
enum boolean (false, true); enum booleaanse controle; // declareren van een enum-variabele
Hier wordt een variabele controle van het type enum boolean
gemaakt.
U kunt ook enum-variabelen op deze manier declareren.
enum boolean (false, true) controle;
Hier is de waarde van false
gelijk aan 0 en de waarde van true
is gelijk aan 1.
Voorbeeld: Opsommingstype
#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; )
Uitvoer
Dag 4
Waarom worden enums gebruikt?
Een enumvariabele kan slechts één waarde hebben. Hier is een voorbeeld om het te demonstreren,
#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; )
Uitvoer
Grootte van enumvariabele = 4 bytes
Hier krijgen we 4 omdat de grootte int
4 bytes is.
Dit maakt enum een goede keuze om met vlaggen te werken.
Hoe enums voor vlaggen te gebruiken?
Laten we een voorbeeld nemen,
enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button;
Stel dat u een knop ontwerpt voor een Windows-applicatie. U kunt vlaggen ITALICS, BOLD en UNDERLINE instellen om met tekst te werken.
Er is een reden waarom alle integrale constanten een macht van 2 zijn in de bovenstaande pseudocode.
// In binair ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100
Aangezien de integrale constanten een macht van 2 zijn, kunt u twee of meer vlaggen tegelijk combineren zonder elkaar te overlappen met bitsgewijze OR | operator. Hierdoor kun je twee of meer vlaggen tegelijk kiezen. Bijvoorbeeld,
#include enum designFlags ( BOLD = 1, ITALICS = 2, UNDERLINE = 4 ); int main() ( int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 printf("%d", myDesign); return 0; )
Uitvoer
5
Als de uitvoer 5 is, weet u altijd dat vet en onderstreept wordt gebruikt.
U kunt ook vlaggen toevoegen volgens uw vereisten.
if (myDesign & ITALICS) (// code voor cursief)
Hier hebben we cursief aan ons ontwerp toegevoegd. Let op, alleen code voor cursief wordt in de if
instructie geschreven.
U kunt bijna alles bereiken in C-programmering zonder opsommingen te gebruiken. Ze kunnen echter in bepaalde situaties erg handig zijn.