You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

In C and C++, enumeration types map to integers. The normal expectation is that each enumeration type member is distinct.

Non-Compliant Code Example

However, if required, members can be assigned explicit values, as in:

enum

Unknown macro: {red=4, orange, yellow, green, blue, indigo=6, violet}

;

It may not be obvious to the programmer (though it is fully specified in the language) that yellow and indigo have been declared to be identical values (6), as are green and violet (7).

Compliant Solution

Enumeration type declarations must either:

  • provide no explicit integer assignments
  • assign a value to the first member only (the rest are then sequential)
  • assign a value to all members, so any equivalence is explicit

References

  • MISRA
  • No labels