Выравнивание памяти
Есть вот такая структура:
Struct MyStruct
{
double d;
char c;
}
Почему компилятор в случае с 32-битной системой добавляет после char c padding размером 3 байта, а в случае с 64-битной системой 7 байт? Ведь из памяти насколько я знаю всё равно читается кэш-линия размером 64 байта и в том и другом случае, так почему тогда для 32-битной системы достаточно выравнивания по границе 4 байта?