Enums em C
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-> 0TACO_TUESDAY-> 1WEDNESDAY-> 2THURSDAY-> 3FRIDAY-> 4SATURDAY-> 5FUNDAY-> 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.