Если у меня есть соединение, стандарт C гарантирует, что сам союз будет выровнен по размеру самого большого элемента.Соединительный элемент юниверса
union U {
long l;
int i;
short s;
char c[2];
} u;
Но что он говорит о выравнивании отдельных элементов объединения внутри профсоюза? Является ли следующее выражение гарантированным?
(&u.l == &u.i) && (&u.i == &u.s) && (&u.s == &u.c[0])
напоминание, чтобы иметь в виду, что стандарт не сказать 'u.i & 0xFF == ЯК [0]' или низкого порядка байт I не гарантируется с [0] (байтов) – Spudd86