Why I can use the enum "outside" the struct as a parameter of the init function? So it looks like the enum is global and not restricted to the enclosing struct block.
typedef struct {
double x;
double y;
enum color_t {r, g, b} color;
} point;
void myfunc(point *this, enum color_t c) {
// TODO
}