onversiones aritméticas usuales en C: ¿Cuál es la razón detrás de esta regla particula

De k & R C

rimero, si cualquiera de los operandos es doble largo, el otro se convierte en doble largo.e lo contrario, si cualquiera de los operandos es doble, el otro se convierte en doble.e lo contrario, si cualquiera de los operandos es flotante, el otro se convierte en flotante.e lo contrario, las promociones integrales se realizan en ambos operandos; ...

Esto significaría debajo de la expresión

char a,b,c;

c=a+b;

es realmente calculado como

c = char((int)a+(int)b);

¿Cuál es la razón detrás de esta regla?

Estas conversiones ocurren si a, byc fueron cortas?