Почему выравнивание здесь работает не так как ожидается

#include <iostream>

struct Foo
{
    char x;
    int y;
    int z;

};

int main()
{
    std::cout << sizeof(Foo);
}

Сделал иллюстрацию как выше выглядит выравнивание:

введите сюда описание изображения

Здесь все выходит, но не понимаю почему происходит выравнивание в коде ниже:

struct Foo
{
  int x;
  int y;
  char z;
};

с int- ми все ясно, но вот char, он последний и весит 1 байт, по идее не должен выравнивается


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