3 bytes int y 5 bytes de largo?

¿Cada uno de los estándares de C y C ++ permitesizeof de tipos numéricosno ser un poder de dos?

Se conocen las siguientes restricciones:

16 <= CHAR_BIT * sizeof(int) <= CHAR_BIT * sizeof(long)32 <= CHAR_BIT * sizeof(long) <= CHAR_BIT * sizeof(long long)y una docena de otros, que en una arquitectura típica de bytes de 8 bits significa2 <= sizeof(int) && 4 <= sizeof(long)

Eso significa quesizeof(int) == 3 && sizeof(long) == 5 ¿Es un comportamiento válido?

En caso afirmativo, ¿existe algún compilador / arquitectura conocido que se comporte de manera similar?

Respuestas a la pregunta(4)

Su respuesta a la pregunta