@C的神: Asigna un número entero a un determinado tipo de variable. ¿Cómo debería escribirse el programa? Una explicación, un ejemplo es suficiente.
Si se utilizan varios tipos de variables y constantes (tipos mixtos) en la misma declaración o expresión, C las convertirá automáticamente al mismo tipo. Las siguientes son las reglas básicas para la conversión automática de tipos:
1. En las expresiones, los valores de char y short, ya sean con o sin signo, se convertirán automáticamente a int o int sin signo (si el tamaño). de short es lo mismo que int, por lo que el rango de representación de unsigned short es mayor que int. En este caso, unsigned short se convierte en unsigned int). Debido a que se convierten para representar una gama más amplia de tipos, esta conversión se denomina "levantamiento".
2. Ordene los distintos tipos de datos de mayor a menor, a saber: long double, double, float, unsigned long long, long long, unsigned long, long, unsigned int e int. Aquí hay una pequeña excepción. Si long e int tienen el mismo tamaño, entonces unsigned int debería tener un rango más alto que long. Char y short no aparecen en esta lista clasificada porque deberían haber sido promovidos a int o unsigned int.
3. En cualquier operación que involucre dos tipos de datos, el tipo de nivel inferior se convertirá al tipo de nivel superior.
4. En la declaración de asignación, antes de asignar el valor del lado derecho de = a la variable del lado izquierdo de =, el tipo de datos del valor del lado derecho debe convertirse al tipo. de la variable del lado izquierdo. Es decir, el valor de la derecha se convertirá al valor de cualquier tipo de datos que sea la variable de la izquierda. Este proceso puede resultar en una promoción de tipo o una degradación de tipo del valor en el lado derecho. La llamada "degradación" consiste en convertir un tipo de nivel superior en un tipo de nivel inferior.
5. Cuando se pasan como parámetros a la función, char y short se convertirán a int y float se convertirá a double. Utilice prototipos de funciones para evitar esta actualización automática.
¡Espero que te pueda ayudar y espero que lo adoptes!