Lesson 97 +10 XP

Enums

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

Defining an enum


c
enum Level {

### LOW,

### MEDIUM,

### HIGH
};

Using it


c
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, ...:


c

### LOW = 0

### MEDIUM = 1

### HIGH = 2

Setting custom values


c
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.