Сегодня я нашел следующее:Умножив полукокса и ИНТ вместе в C
#include <stdio.h>
int main(){
char x = 255;
int z = ((int)x)*2;
printf("%d\n", z); //prints -2
return 0;
}
Так в основном я получаю переполнение, поскольку предельный размер определяется операндами на правой стороне знак = ??
Почему он не бросает его в int перед умножением работы?
В этом случае я использую char и int, но если я использую «long» и «long long int» (c99), то получаю подобное поведение. Не рекомендуется ли вообще делать арифметику с операндами разных размеров?
#include для этих типов. –
slartibartfast