¿Cómo funciona el relleno en la estructura?

La salida de este programa es 28. No entiendo cómo? Según mi opinión, esto debería ser 32 (4 + 4 + 4 + 4 + 12) +4 (para mantener la alineación) = 32. Por favor, explique la razón para mostrar la salida 28?

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

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