आज मैं निम्नलिखित पाया:चार गुणा और सी में एक साथ int
#include <stdio.h>
int main(){
char x = 255;
int z = ((int)x)*2;
printf("%d\n", z); //prints -2
return 0;
}
तो मूल रूप से, क्योंकि आकार सीमा = के दाईं ओर ऑपरेंड से निर्धारित होता है पर हस्ताक्षर मैं एक अतिप्रवाह हो रही है
??
काम को गुणा करने से पहले इसे int में क्यों नहीं डाला जाता है?
इस मामले में मैं एक char और int का उपयोग कर रहा हूं, लेकिन यदि मैं "लंबा" और "लंबा लंबा int" (c99) का उपयोग करता हूं, तो मुझे समान व्यवहार मिलता है। क्या यह आम तौर पर विभिन्न आकारों के संचालन के साथ अंकगणित करने के खिलाफ सलाह दी जाती है?
# इन प्रकारों के लिए शामिल करें। –
slartibartfast