Enum in C

In C, Enum is a user defined data type, used to create constant group, Each constant is assigned an by default integer value starting from 0,1,2 and so on.

Declaring Enum

Enum is declared using Enum keyword followed by space and Enum name and its body {}, within its body constants are defined separated by comma.

Syntax

enum enum_name{
  constant_1,
  constant_2,
  constant_3...
};

Example

enum weekdays{
   Monday,
   Tuesday,
   Wednesday,
   Thursday,
   Friday,
   Saturday,
   Sunday
};

Constants inside Enum weekdays, from Monday to Sunday have default integer values assigned.

Monday = 0
Tuesday= 1
Wednesday = 2
Thursday = 3
Friday = 4
Saturday = 5
Sunday = 6

Define Enum variable

Enum variable is declared with Enum keyword followed by its name and its variable.

Syntax

enum Enum_name variable;

Example

enum weekdays days;

Get enum constant value

enum weekdays days = Monday;
printf("Monday integer value is %d", days);
Output:
Monday integer value is 0

Change Constant enum integer values

enum allows to assign integer values to enum constants
enum weekdays{
   Monday,
   Tuesday,
   Wednesday = 10,
   Thursday,
   Friday,
   Saturday = 55,
   Sunday
};
enum weekdays days = Monday;
printf("\nMonday integer value is %d", days);
days = Wednesday;
printf("\nWednesday integer value is %d", days);
days = Thursday;
printf("\nThursday integer value is %d", days);
days = Saturday;
printf("\nSaturday integer value is %d", days);
days = Sunday;
printf("\nSunday integer value is %d", days);
Output:
Monday integer value is 0
Wednesday integer value is 10
Thursday integer value is 11
Saturday integer value is 55
Sunday integer value is 56

Assigning or changing constant integer value will increase the next constant value.