Почему выравнивание здесь работает не так как ожидается
#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 байт, по идее не должен выравнивается
