Enums are more descriptive when used. Consider:
int f(int fg, int bg)
versus
int f(COLOR fg, COLOR bg)
In addition, enums give a bit more type-safety, because
- integers are not implicitly convertible to enum types
- enum of one type is not implicitly convertible to enum of another type