Conversión automática de tipos de datos.
El lenguaje C permite que en una misma expresión aparezcan diferentes tipos
de datos, encargándose el compilador de realizar las operaciones de forma correcta. El
compilador del lenguaje C, cuando en una misma expresión aparecen dos o más tipos
de datos, convierte todos los operandos al tipo del operando más grande existente de
acuerdo con las dos reglas siguientes:
- Todos los char y short int se convierten a int. Todos los float a double.
- Para todo par de operandos, lo siguiente ocurre en secuencia:
- Si uno de los operandos es un long double, el otro se convierte en long double.
- Si uno de los operandos es double, el otro se convierte a double.
- Si uno de los operandos es long, el otro se convierte a long.
- Si uno de los operandos es unsigned, el otro se convierte a unsigned.
Después de que el compilador aplique estas reglas de conversión, cada par de
operandos será del mismo tipo, y el resultado será del tipo de los operandos. Veamos
un ejemplo:
char ch;
int i;
float f;
double d;
( ch / i ) + ( f * d ) - ( f + i );
char int float double float int
- ch de char pasa a int.
- f de float pasa a double.
( ch / i ) + ( f * d ) - ( f + i );
int int double double double int
Para la tercera operación, y dado que las variables no son del mismo tipo, se aplica la segunda regla, convirtiéndose el int en double, realizándose la suma (f + i) como dos datos de tipo double, y siendo por tanto el resultado un double.
0 comentarios