¿Cuál es el punto de float_t y cuándo debe usarse?

Estoy trabajando con un cliente que está utilizando una versión anterior de GCC (3.2.3 para ser precisos) pero quiere actualizar y una razón que se ha dado como obstáculo para actualizar a una versión más nueva es las diferencias en el tamaño del tipo @float_t que, efectivamente, es correcto:

On GCC 3.2.3

sizeof(float_t) = 12
sizeof(float) = 4
sizeof(double_t) = 12
sizeof(double) = 8

On GCC 4.1.2

sizeof(float_t) = 4
sizeof(float) = 4
sizeof(double_t) = 8
sizeof(double) = 8

pero ¿cuál es la razón de esta diferencia? ¿Por qué el tamaño se hizo más pequeño y cuándo debería y no debería usarfloat_t odouble_t ?

Respuestas a la pregunta(3)

Su respuesta a la pregunta