Выравнивание памяти

Есть вот такая структура:

Struct MyStruct
{
  double d;
  char c;
}

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


Ответы (0 шт):