Почему размер символа увеличивается как переменная экземпляра

Возможный дубликат:
   Почему isn 't sizeof для структуры, равной сумме sizeof каждого члена?
   Как определяется размер класса C ++?

Когда я проверяю размер класса с одной переменной char, размер составляет 1 байт. Но если мы добавим целое число, то вдруг оно перейдет к 8. Не могли бы вы объяснить, почему?

class Char
{
  char b;
};
class Int
{
  int a;
};
class A
{
  int a;
  char b;
};

int main()
{
  Char Cobj;
  cout<<"Char size: "<

Выход: Размер Char: 1 Int размер: 4 Размер: 8

0
nl ja de
добавлено автор Sergey Brunov, источник
Хм, эти ребята покрыты глубже. Thanx для ссылки
добавлено автор Neo, источник

1 ответы

Из-за дополнения - добавляются 3 фиктивных байта после A :: b .

Это делается для правильного выравнивания A в, скажем, в массиве - первый член A - это int , который должен иметь конкретный выравнивание (возможно, 4 или 8 байтов). Поэтому, если у вас есть

A arrayOfA[10];

сами объекты должны быть выровнены с байтами 4 или 8 .

1
добавлено
pro.cxx
pro.cxx
3 049 участник(ов)

C/C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. Не хамим, не переходим на личности, не вбрасываем утверждения без доказательств 2. No Ads, offtop, flood Объявления о вакансиях и евенты - в лс @AlexFails https://t.me/ProCxx/259155

supapro.cxx
supapro.cxx
1 925 участник(ов)

Чат для тех, кто немного знает C++, простые вопросы по реализации, синтаксису и ide – сюда, а для другого есть: /Главный чат по серьезным вопросам — @ProCxx /Чат по обсуждению всего — @fludpac

C++ Russia
C++ Russia
384 участник(ов)

Сообщество разработчиков C++ в Telegram.

cxx.Дискуссионная
cxx.Дискуссионная
298 участник(ов)

это не двач, общайтесь вежливо; разговор на почти любые темы; Не согласны с баном? В лс @AlexFails, @ivario

C++ для маленьких и тупых
C++ для маленьких и тупых
105 участник(ов)

Лоу левел (по среднему IQ участников) чатик ExtremeCode @extremecode Флудилка @extremecode_rest