What is the difference between
enum week{Mon, Tue, Wed, Thur, Fri, Sat, Sun};
enum week day = Wed;
and
enum week{Mon, Tue, Wed, Thur, Fri, Sat, Sun};
int day = Wed;
in C?
I couldn't find what is the benefit of using variables of type enum
over using a regular int
.
The benefit is that using an enum
make your intentions clearer, both to people reading your code and to the compiler. For example, any half-way decent compiler will warn you if you use an enum with incomplete switch
cases:
switch (day) {
case Mon: printf("Monday\n"); break;
case Tue: printf("Tuesday\n"); break;
}
Here GCC (with -Wall
) emits:
warning: enumeration value 'Wed' not handled in switch [-Wswitch]
7 | switch (day) { | ^~~~~~
…
If the type of day
was int
, you wouldn’t get this very helpful warning.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With