Enums definiëren
Maak leesbare benoemde waarden.
Enums definiëren is een gratis C Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject C Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus C Academy bevat in totaal 4 lessen.
Wat is een enum?
Een enumeratie (enum) is een door de gebruiker gedefinieerd type dat een verzameling benoemde gehele constanten groepeert.
In plaats van te onthouden dat 0 maandag betekent en 1 dinsdag, geef je die getallen leesbare namen. Daardoor wordt code duidelijker en is de kans op fouten kleiner.
Basissyntaxis
Je declareert een enum met het sleutelwoord enum, een tagnaam en een lijst met namen tussen accolades.
Elke naam wordt een constante die je overal kunt gebruiken waar een geheel getal wordt verwacht.
enum Weekday { MON, TUE, WED, THU, FRI };Standaardwaarden beginnen bij 0
Standaard is de eerste naam 0 en is elke volgende naam één groter dan de vorige.
In enum Weekday zijn MON dus 0, TUE 1, WED 2, enzovoort.
#include <stdio.h>
enum Weekday { MON, TUE, WED, THU, FRI };
int main(void) {
printf("%d %d %d\n", MON, TUE, WED);
return 0;
}Een enumvariabele declareren
Zodra er een enumtype bestaat, kun je variabelen van dat type maken.
De variabele bevat een van de benoemde waarden. Intern is het gewoon een int.
#include <stdio.h>
enum Weekday { MON, TUE, WED, THU, FRI };
int main(void) {
enum Weekday today = WED;
printf("today = %d\n", today);
return 0;
}Waarom enums de leesbaarheid verbeteren
Vergelijk if (state == 2) met if (state == PAUSED).
De tweede versie legt zichzelf uit. Met enums kan de compiler de betekenis bijhouden terwijl je duidelijke, benoemde waarden leest in plaats van onverklaarbare getallen.
enum Status { RUNNING, PAUSED, STOPPED };Enums gebruiken met switch
Enums passen vanzelf goed bij switch-instructies. Elke benoemde waarde wordt een duidelijk caselabel.
Dit is een van de meest voorkomende toepassingen van enums in de praktijk.
#include <stdio.h>
enum Status { RUNNING, PAUSED, STOPPED };
int main(void) {
enum Status s = PAUSED;
switch (s) {
case RUNNING: printf("running\n"); break;
case PAUSED: printf("paused\n"); break;
case STOPPED: printf("stopped\n"); break;
}
return 0;
}Enums zijn gewoon gehele getallen
Enumconstanten zijn uitwisselbaar met gehele getallen. Je kunt er berekeningen en vergelijkingen mee uitvoeren.
Die flexibiliteit is handig, maar betekent ook dat C je niet verhindert een getal buiten het geldige bereik op te slaan.
#include <stdio.h>
enum Level { LOW, MID, HIGH };
int main(void) {
enum Level next = LOW + 1;
printf("%d\n", next);
return 0;
}Anonieme enums
Je kunt de tagnaam weglaten als je alleen de constanten nodig hebt en geen benoemd type.
Dit is een snelle manier om een groep verwante gehele constanten te definiëren.
#include <stdio.h>
enum { RED, GREEN, BLUE };
int main(void) {
printf("%d %d %d\n", RED, GREEN, BLUE);
return 0;
}Naamgevingsconventies
Volgens de conventie worden namen van enumconstanten in UPPER_CASE geschreven, net als macro's.
Zo zien lezers dat de waarde een vaste constante is. De tagnaam gebruikt vaak CamelCase of PascalCase.
enum TrafficLight { LIGHT_RED, LIGHT_YELLOW, LIGHT_GREEN };Combineren met typedef
Overal enum Weekday schrijven is omslachtig. Met een typedef kun je een korte naam gebruiken.
Na de typedef kun je variabelen declareren als Weekday today;, zonder het sleutelwoord enum.
#include <stdio.h>
typedef enum { MON, TUE, WED } Weekday;
int main(void) {
Weekday d = TUE;
printf("%d\n", d);
return 0;
}Bereik van enumconstanten
Namen van enumconstanten delen binnen hun bereik dezelfde naamruimte als gewone identifiers.
Dat betekent dat twee enums in hetzelfde bereik niet dezelfde constante naam mogen hergebruiken. Kies verschillende namen om conflicten te voorkomen.
enum A { OPEN, CLOSED };
enum B { LOCKED, UNLOCKED };Korte controle
Test je begrip van de standaardwaarden van enums.
Samenvatting
Een enum definieert benoemde gehele constanten. De eerste is 0 en elke volgende naam is één groter, tenzij je iets anders opgeeft.
Enums maken code leesbaar, passen goed bij switch en kunnen met typedef worden verkort. Hierna bekijken we aangepaste waarden en bereiken.
Leer C met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 39
- Lessen
- 144
Veelgestelde vragen
Is de les “Enums definiëren” gratis?
Ja — de volledige tekst van “Enums definiëren” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus C Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus C Academy bevat in totaal 4 lessen.
Wat leer ik in “Enums definiëren”?
Maak leesbare benoemde waarden. Je oefent met C Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met C Academy te beginnen?
Ervaring vooraf is niet nodig. C Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Enums definiëren”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over C Academy?
Ja. Elke les over C Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Enums definiëren
- Enumwaarden en bereiken
- const-variabelen
- #define-constanten