------------------------------------------------------------------------------
MC logo
Enumerated Type
[^] CSc 220 Home
------------------------------------------------------------------------------
[Introduction] [Boolean and Control] [Functions] [Arrays and Pointers] [Dynamic Arrays] [Array Errors] [Command Array] [Standard Containers] [Structs and Classes] [Automatic Pointer] [Multi-File Programs] [Copying Objects] [Templates] [Inheritance] [Plain C I/O] [Type Odds And Ends] [Plain C Strings] [File I/O]
[Enumerated Type] [Typedef] [Unsigned Type] [Conversion Games]
enum.c
/* C enumerate type creates symbolic names.  The names have integer
   values. */
#include <stdio.h>

/* This assigns the names Sun through Sat to the values 0 through 6.
   They are constants, and cannot be changed.  It also defines the
   tag daynames which can be used to declare a variable of this type. */
enum daynames { Sun, Mon, Tue, Wed, Thu, Fri, Sat};

/* This just defines the names */
enum {SEC = 1, MIN = 60, HOUR = 60*60, DAY = 24*60*60};

int main()
{
        /* Declare a variable of type enum daynames.  It is really 
           just an integer, of some size picked by the implementation
           large enough to hold all the enumeration values. */
        enum daynames today;

        /* This defines some names, each one taking the value one greater
           if than the last, if not given a specific value.  The variable
           dd can hold any of the enumeratoin values. */
        enum { DINK, DANK = 5, DUNK, DONGLE = 4, DANGLE, DROP } dd;
        int n;

        /* Days of the week.  These are just integer codes. */
        for(today = Mon; today <= Fri; ++today)
                printf("%d ", today);
        putchar('\n');

        /* Using the second value constants. */
        printf("Three days, four hours, and 28 minutes is %d seconds.\n",
               3*DAY + 4*HOUR + 28*MIN);

        /* Enum type variables are just integers.  Enum values are just
           integers. */
        dd = 2;
        printf("%d %d %d %d %d %d %d\n", DINK, DANK, DUNK, DONGLE, DANGLE, 
               DROP, dd);
}