Oggi ho trovato il seguente:Moltiplicando char e int insieme in C
#include <stdio.h>
int main(){
char x = 255;
int z = ((int)x)*2;
printf("%d\n", z); //prints -2
return 0;
}
Quindi, fondamentalmente sto ricevendo un overflow perché il limite di dimensione è determinata dalle operandi sul lato destro del segno = ??
Perché non trasmetterlo a int prima di moltiplicare il lavoro?
In questo caso sto utilizzando un carattere e int, ma se uso "long" e "long long int" (c99), ho un comportamento simile. È generalmente sconsigliato fare aritmetica con operandi di diverse dimensioni?
#include per questi tipi. –
slartibartfast