Before we examine the use of typedef with enums, we must first complete the picture of using enums. Remember that defining a new type does not require memory allocation. Only when we declare variables of a given type is memory allocated to the variables. In the last two chapters, we used enums by first defining them and then separately declaring variables of that type, asfollows:
// First define some enumerated types.
enum Face { one , two , three , ... };
enum Suit { spade , heart, ... };
// Then declare variables of those types.
enum Face f1 , f2;
enum Suit s1 , s2;
In the preceding code fragment, we have defined two types—enum Face and enum Suit. Later, in separate statements, two variables of each type are declared—f1, f2, s1, and s2.
Another way to achieve the same result is to both define the enumerated type and to declare variables of that type in one statement, as follows:
...