Я читал Основные принципы CPP, P.9: Не тратьте время и место:
Пример, плохой:
struct X {
char ch;
int i;
string s;
char ch2;
X& operator=(const X& a);
X(const X&);
};
Затем в нем говорится:
... Обратите внимание, что макет X гарантирует, что по крайней мере 6 байтов (а, скорее всего, больше) будут потрачены впустую.
Почему 6 байт гарантированно будут потрачены впустую? И как можно исправить (кроме объявления конструктора, который является источником отходов примера)
char
для выравнивания всего по 4 байта. - person Innokentiy Alaytsev   schedule 31.01.2019