Si bool es una macro para int, ¿por qué es un tamaño diferente?

Esperaba que alguien pudiera explicar por qué

#include <stdbool.h>

printf("size of bool %d\n", sizeof(bool));
printf("size of int %d\n", sizeof(int));

salidas a

size of bool 1
size of int 4

He miradohttp://pubs.opengroup.org/onlinepubs/009695399/basedefs/stdbool.h.html lo que parece indicar que bool es esencialmente una macro para _Bool que, cuando se establece en verdadero o falso, en realidad es solo una macro para una constante entera. Si es un número entero, ¿por qué no es del mismo tamaño?

Lo pregunto porque nos llevó demasiado tiempo depurar un programa para el que no asignamos suficiente memoria.

Respuestas a la pregunta(6)

Su respuesta a la pregunta