![]() |
|
MISRA-C:2004 Rule 9.3: (Required) |
|
||||
![]() | |||||||
An explicit initialisation of the first element, as permitted by the above rule, forces the allocation of integers to start at the given value. When adopting this approach it is essential to ensure that the initialisation value used is small enough that no subsequent value in the list will exceed the int storage used by enumeration constants.
Explicit initialisation of all items in the list, which is also permissible, prevents the mixing of automatic and manual allocation, which is error prone. However it is then the responsibility of the programmer to ensure that all values are in the required range, and that values are not unintentionally duplicated.
enumcolour{red=3, blue, green, yellow=5};/* non compliant *//* green and yellow represent the same value - this is duplication */enumcolour{red=3, blue=4, green=5, yellow=5};/* compliant *//* green and yellow represent the same value - this is duplication */
QAC messages that encompass this guideline:
| 0723 | Initialize none, first only, or all entries in this enumerator list. |
|
||
(c) The Motor Industry Research Association, 2004
|
QA C Source Code Analyser 8.1.2
MISRA-C:2004 Compliance Module 3.2 © 2013 Programming Research www.programmingresearch.com |
Personality Groups | Glossary | Message Index | MISRA-C:2004 Rule Index | Contents |