Enums

Search IconIcon to open search

Enum

Ein Enum ist eine Möglichkeit für verschiedene Werte von Ganzzahlen Datentypen verschiedene Bezeichner unter einem Begriff zusammen zu fassen, dies ist zum Beispiel sehr nützlich um Zustände eines Programms kompakt und präzise zusammen zu fassen.

Deklaration im Code

Ohne Typdefinition

1enum week {
2	Mon,
3	Tue,
4	Wed,
5	Thu,
6	Fri,
7	Sat,
8	Sun
9} day;

In diesem Fall ist enum week der Datentyp für dieses Enum und day eine Variable von diesem Datentyp.

Enum mit Typdefinition

1typedef enum weekday {
2	Mon,
3	Tue,
4	Wed,
5	Thu,
6	Fri,
7	Sat,
8	Sun
9} week;

In diesem Fall ist week der Datentyp, sowie auch enum weekday, für dieses Enum und es gibt keine Möglichkeit eine Variable wie bei dem Fall ohne Typdefinition direkt zu deklarieren.

Anonymer Enum mit Typdefinition

1typedef enum {
2	Mon,
3	Tue,
4	Wed,
5	Thu,
6	Fri,
7	Sat,
8	Sun
9} week;

In diesem Fall ist week der Datentyp für dieses Enum und es gibt keine Möglichkeit eine Variable wie bei dem Fall ohne Typdefinition direkt zu deklarieren.

Benutzung im Code

Zustand.h

 1#pragma once
 2#include <stdio.h>
 3typedef enum {
 4	Mon,
 5	Tue,
 6	Wed,
 7	Thu,
 8	Fri,
 9	Sat,
10	Sun
11} week;

Zustand.c

 1#include "Zustand.h"
 2
 3int main(void){
 4	week day = Mon;
 5	printDayName(day);
 6}
 7
 8void printDayName(week day){
 9	switch(day){
10		case Mon:
11			printf("Monday!\n");
12			break;
13		case Tue:
14			printf("Tuesday!\n");
15			break;
16		case Wed:
17			printf("Wednesday!\n");
18			break;
19		case Thu:
20			printf("Thursday!\n");
21			break;
22		case Fri:
23			printf("Friday!\n");
24			break;
25		case Sat:
26			printf("Saturday!\n");
27			break;
28		case Sun:
29			printf("Sunday!\n");
30			break;
31	}
32}

Interactive Graph