C Academy · Les

Enums definiëren

Maak leesbare benoemde waarden.

Les 1 van 413 stappen

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.

Gratis beginnen

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

  1. Enums definiëren
  2. Enumwaarden en bereiken
  3. const-variabelen
  4. #define-constanten
← Terug naar C Academy