как работает заполнение в структуре?

Выход этой программы - 28. Я не понимаю, как? По моему мнению, это должно быть 32 (4 + 4 + 4 + 4 + 12) +4 (для поддержания выравнивания) = 32. Пожалуйста, объясните причину отображения вывода 28 ??

struct test{
    char c;
    int d;
    int x;
    int y;
    long double p;
    }t1;

printf("%d",sizeof(t1));

Ответы на вопрос(4)

Ваш ответ на вопрос