Размера на обекта зависи от реда на променливите

Нека разгледаме дефиницията на класа A по долу:

class A
{
    int a;
    short b;
    short c;
};

Той има три член променливи които са с размер съответно 4, 2 и още 2 байта което общо прави 8 байта. sizeof  на класа A ще даде точно 8. Нека разгледаме дефиницията на класа B:

class B
{
    short a;
    int b;
    short c;
};

Класът съдържа отново същите типове член променливи, но sizeof на класа вече дава 12. Това се дължи на факта, че променливите са в разместен ред. Компилаторът подрежда променливите последователно в паметта. При срещането на различен от предходния тип променлива той поставя променливата в нова машинна дума. В класа B за първата short променлива е отделена една машинна дума, която е 4 байта. int променливата заема точно 4 байта, колкото една машинна дума. Последната short променлива отново е поставена в самостоятелна машинна дума и по този начин общия  размер става 12 байта. В класа А двете short променливи са последователно и компилаторът съумява да ги постави в една машинна дума. Така размера на A е точно 8 байта.