Dziś znalazłem następujące:Mnożąc char i int razem w C
#include <stdio.h>
int main(){
char x = 255;
int z = ((int)x)*2;
printf("%d\n", z); //prints -2
return 0;
}
więc w zasadzie Dostaję przepełnienie ponieważ limit rozmiaru zależy od argumentów po prawej stronie znaku = ??
Dlaczego nie przesyłasz go do int przed pomnożeniem pracy?
W tym przypadku używam char i int, ale jeśli używam "long" i "long long int" (c99), otrzymuję podobne zachowanie. Czy generalnie odradza się robienie arytmetyki operandami o różnych rozmiarach?
#include dla tych typów. –
slartibartfast