Хотелось бы узнать связь между выравниванием виртуальной и физической памяти.
Допустим, у меня есть такая структура:
struct s {
int16_t a;
int32_t b;
int64_t c;
};
Это, вероятно, заложено как:
|aa..bbbb|
|cccccccc|
И его размер в памяти составляет 16 байт. Его самый большой член равен c
(8 байт), поэтому предположим, что он будет выровнен на 8 байт.
Это выравнивание применяется как в пространстве виртуальной памяти, так и в пространстве физической памяти?
Мне интересно, не имеет ли вообще никакого значения выравнивание в виртуальном адресном пространстве - если виртуальные адреса фактически отображаются в выровненную физическую память.