Почему это добавляет эффективности программному коду? Что мешает адресоваться по нечетным адресам и почему структура
struct block{
char a;
char b;
char* c;
};
занимает не 16, а 8 байт (в 32 битной программе)? Если компилятор генерирует вместо этой структуры такую
struct decoratedblock{
char a;
char zero[1];
char b;
char zero[1];
char* c;
};
Получается, что b может находится по адресу, не кратному машинному слову в 32 бита. Почему между a и b не 3, а 1 нулевой байт? Подскажите пожалуйста, немного запутался