Barr Group TwitterBarr Group Vimeo


The following C coding rules relate to the use of structures and unions in embedded software:

Rule 5.5.a.) Appropriate care shall be taken to prevent the compiler from inserting padding bytes within struct or union types used to communicate to or from a peripheral or over a bus or network to another processor.

Rule 5.5.b.) Appropriate care shall be taken to prevent the compiler from altering the intended order of the bits within bit-fields. (Note: Options include static assertions or other compile-time checks as well as the use of preprocessor directives to select one of two competing struct definitions.)


There is a tremendous amount of implementation-defined behavior in the area of structures and unions. Bit-fields, in particular, suffer from severe portability problems, including the lack of a standard bit ordering and no official support for the fixed-width integer types they so often call out to be used with.




These rules shall be enforced during code reviews.

What’s happening and how it’s done. Get in the know.

Sign Up for Our Newsletter

Receive free how-to articles, industry news, and the latest info on Barr Group webinars and training courses via email. 

To prevent automated spam submissions leave this field empty.