Hôm nay tôi thấy như sau:Nhân char và int với nhau trong C
#include <stdio.h>
int main(){
char x = 255;
int z = ((int)x)*2;
printf("%d\n", z); //prints -2
return 0;
}
Vì vậy, về cơ bản tôi nhận được một tràn vì giới hạn kích thước được xác định bởi toán hạng ở phía bên phải của = ký ??
Tại sao không truyền nội dung đó vào int trước khi nhân công việc?
Trong trường hợp này tôi đang sử dụng char và int, nhưng nếu tôi sử dụng "long" và "long long int" (c99), thì tôi sẽ có được hành vi tương tự. Nó thường được khuyên chống lại làm số học với toán hạng của các kích cỡ khác nhau?
#include cho các loại này. –
slartibartfast