Lesson 97 +10 XP

Enums

Enums

An enum lets you give names to integer values. Instead of remembering that 1 means "Sunday", you write Sunday.

Defining an enum

enum Level {
    LOW,
    MEDIUM,
    HIGH
};

Using it

enum Level level = MEDIUM;
switch (level) {
    case LOW:
        printf("Low level");
        break;
    case MEDIUM:
        printf("Medium level");
        break;
    case HIGH:
        printf("High level");
        break;
}

Under the hood: values

By default the members are 0, 1, 2, ...:

LOW = 0
MEDIUM = 1
HIGH = 2

Setting custom values

enum Level {
    LOW = 25,
    MEDIUM = 50,
    HIGH = 75
};

Why use enums?

  • Self-documenting names instead of magic numbers.
  • Switch statements read like a checklist.
  • Compiler type-checks a bit more.

TL;DR

  • An enum names integer constants.
  • Default values start at 0.
  • Set custom values with =.
  • Makes code read like English.