Я читаю книгу о разработке и реализации компилятора. В части, посвященной управлению хранением, автор пишет функцию выделения памяти. Он хочет, чтобы функция была соответствующим образом выровнена для любого типа. Он утверждает, что размер союза ниже - минимальное выравнивание на главной машине. Я не совсем понимаю, что это значит. Из книги: «... ее поля - это те, которые, скорее всего, будут иметь самые строгие требования к выравниванию».Минимальные требования к выравниванию для машины
union align {
long l;
char *p;
double d;
int (*f) (void);
};
Может кто-нибудь объяснить, что означает «строгие требования выравнивания» и как это дает минимальное выравнивание на хост-машине?