Precedence rules for aggregate variables

The following formulas determine the alignment for aggregate variables, namely structures, unions, and classes:

Alignment of variable = maximum(effective type alignment , modified alignment value)

where effective type alignment = maximum(maximum(aligned type attribute value, __align specifier value) , minimum(aggregate type alignment, packed type attribute value))

and modified alignment value = maximum (aligned variable attribute value , packed variable attribute value)

and where aggregate type alignment = maximum (alignment of all members )

Note:
If a type attribute and a variable attribute of the same kind are both specified in a declaration, the second attribute is ignored.