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 )