VP Developer

Enums em C

published: 2026-05-08

Ao contrário do Golang (uma linguagem que ainda vive nos anos 70), o C tem suporte explícito para enums.

TJ está irritado porque Go é uma linguagem simples e moderna que empresas de verdade usam pra lançar produtos. Nem toda linguagem de programação pode ser um experimento acadêmico como OCaml.

Você pode definir um novo tipo enum assim:

typedef enum DaysOfWeek {
    Monday,
    TACO_TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    FUNDAY,
} days_of_week_t;

O typedef e seu apelido days_of_week_t são opcionais, mas assim com structs, eles facilitam o uso do enum.

No exemplo acima, days_of_week_t é um novo tipo que só pode ter um dos valores definidos no enum:

  • MONDAY -> 0
  • TACO_TUESDAY -> 1
  • WEDNESDAY -> 2
  • THURSDAY -> 3
  • FRIDAY -> 4
  • SATURDAY -> 5
  • FUNDAY -> 6
typedef struct Event {
    char *title;
    enum DaysOfWeek day;
} event_t;

Um enum não é um tipo de coleção como uma struct ou um array. É apenas uma lista de inteiros vinculaods a um novo tipo, onde cada um recebe nome explícito.