को बताए अगर मैं सी में निम्न कोड निष्पादित करें:सी पूर्णांक अतिप्रवाह व्यवहार जब बड़े-चौड़ाई पूर्णांकों
#include <stdint.h>
uint16_t a = 4000;
uint16_t b = 8000;
int32_t c = a - b;
printf("%d", c);
यह सही ढंग से परिणाम के रूप में प्रिंट '-4000'। हालांकि, मैं थोड़ा उलझन में हूं: दूसरे से एक बड़े हस्ताक्षरित पूर्णांक को घटाने पर अंकगणित अतिप्रवाह नहीं होना चाहिए? यहां क्या कास्टिंग नियम खेल रहे हैं? यह सवाल थोड़ा सा नोबिश लगता है, इसलिए किसी भी संदर्भ की सराहना की जाएगी।
मेरा संदर्भ पुराने मानक के लिए है। सी 99 के लिए tgamblin की प्रतिक्रिया देखें। हालांकि वे एक ही बात कहते हैं। – TrayMan
3.2.1.5 डबल/फ्लोट/इंट/आदि रूपांतरणों के लिए है। वह अभिन्न (लंबे/int/char/short/etc) प्रचार की तलाश में है जो मानक के उस संस्करण के 3.2.1.1 में है। यह ऊपर से जुड़े नए मानक में 6.3.1.1 में है। – tgamblin
वह 3.2.1.2 भी (हस्ताक्षरित/हस्ताक्षरित इनट्स) – tgamblin