Enumerations are integer data types that you can create with a limited range of values. Each value is represented by a symbolic constant that may be used in conjunction with variables of the same enumerated type.


  • 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


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


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),…


Label Values:
Rob = 0, Steve = 1, Paul = 7, Bill = 8, Gary = 9

How to Declare an Enumeration Type Variable

Declared along with type:


enum typeName {const-list} varname1…;

Declared independently:


enum typeName varName1…,varNamen;


Declaring a 'Tagless' Enumeration Variable

No type name specified:


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


© 2016 Microchip Technology, Inc.
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.