¿Por qué "sizeof (a? True: false)" da una salida de cuatro bytes?

Tengo un pequeño código sobre elsizeof operador con el operador ternario:

#include <stdio.h>
#include <stdbool.h>

int main()
{
    bool a = true;
    printf("%zu\n", sizeof(bool));  // Ok
    printf("%zu\n", sizeof(a));     // Ok
    printf("%zu\n", sizeof(a ? true : false)); // Why 4?
    return 0;
}

Salida (CCG):

1
1
4 // Why 4?

Pero aquí,

printf("%zu\n", sizeof(a ? true : false)); // Why 4?

el operador ternario regresaboolean&nbsp;tipo y tamaño debool&nbsp;tipo es1&nbsp;byte en C.

Entoncespor quesizeof(a ? true : false)&nbsp;dar una salida de cuatro bytes?