Enumerations in C - What Are They


Introduction

Enumerations, commonly referred to as "enums," are a fundamental concept in C programming. They provide a way to create custom data types that consist of a finite set of named values. Enumerations are especially useful when you need to represent a collection of related constants or options. In this guide, we'll explore what enums are in C and provide sample code to illustrate their usage.


What is an Enumeration?

An enumeration in C is a user-defined data type that consists of a set of named integer values. These named values are referred to as "enumerators" and provide a convenient way to represent a finite set of related constants or options. Enums make the code more readable and maintainable by assigning meaningful names to values.


Declaring Enumerations

Here's how you declare an enumeration in C:

#include <stdio.h>
// Declare an enumeration named 'Days'
enum Days {
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};
int main() {
// Declare a variable of type 'Days'
enum Days today;
// Assign a value from the enumeration
today = Wednesday;
// Print the day
printf("Today is: %d\\n", today);
return 0;
}

In this example, we declare an enumeration named

Days
with seven enumerators representing the days of the week. We then declare a variable
today
of type
Days
and assign it the value
Wednesday
. When we print the value of
today
, it will display
2
since enumerators start from
0
.


Assigning Values to Enumerators

You can explicitly assign values to enum enumerators:

#include <stdio.h>
// Declare an enumeration with assigned values
enum Months {
January = 1,
February = 2,
March = 3,
April = 4,
May = 5,
June = 6
};
int main() {
// Declare a variable of type 'Months'
enum Months currentMonth;
// Assign a value from the enumeration
currentMonth = March;
// Print the month
printf("Current month: %d\\n", currentMonth);
return 0;
}

In this example, we declare an enumeration

Months
with assigned values starting from
1
. We then declare a variable
currentMonth
and assign it the value
March
. When we print the value of
currentMonth
, it will display
3
.


Conclusion

Enumerations in C provide a structured way to define sets of related constants, making code more readable and self-explanatory. This guide has introduced you to the basics of enumerations, including declaration, assigning values to enumerators, and their usage in C. As you continue your journey in C programming, you'll discover the utility of enums for representing various options, states, and more.