Hoy he encontrado lo siguiente:carbón y int juntos en C
#include <stdio.h>
int main(){
char x = 255;
int z = ((int)x)*2;
printf("%d\n", z); //prints -2
return 0;
}
Así que básicamente me estoy haciendo un desbordamiento debido a que el límite de tamaño está determinado por los operandos en la parte derecha del signo = ??
¿Por qué no convertirlo a int antes de multiplicar el trabajo?
En este caso estoy usando un char y int, pero si uso "long" y "long long int" (c99), entonces obtengo un comportamiento similar. ¿Se aconseja generalmente no hacer aritmética con operandos de diferentes tamaños?
#include para estos tipos. –
slartibartfast