Enumerations:
- Are unique integer data types.
- May only contain a specified list of values.
- Values are specified as symbolic constants.
How to Create an Enumeration Type
Syntax
enum typeName {label0, label1,…, labeln}
Where compiler sets label0=0, label1=1, labeln=n
Creates an ordered list of constants.
Each label’s value is one greater than the previous label.
Example
Label Values:
SUN = 0, MON = 1, TUE = 2, WED = 3, THR = 4 , FRI = 5, SAT = 6
Any label may be assigned a specific value.
The following labels will increment from that value.
enum typeName {label0 = const0,…, labeln}
Where compiler sets label0=const0, label1=(const0+1),…
Example
Label Values:
Rob = 0, Steve = 1, Paul = 7, Bill = 8, Gary = 9
How to Declare an Enumeration Type Variable
Declared along with type:
Syntax
enum typeName {const-list} varname1…;
Declared independently:
Syntax
enum typeName varName1…,varNamen;
Example
Declaring a 'Tagless' Enumeration Variable
No type name specified:
Syntax
enum {const-list} varName1…,varNamen;
Only variables specified as part of the enum declaration may be of that type.
No type name is available to declare additional variables of the enum type later in code.
Using Enumeration Type Variable
If enumeration and variable have already been defined:
varName = labeln;
The labels may be used as any other symbolic constant.
Variables defined as enumeration types must be used in conjunction with the type’s labels or equivalent integer.