Enumerations

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.

Example

© 2019 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.