आपका उदाहरण, unsigned i = -.1;
अच्छी तरह से परिभाषित दोनों C11 और C99 द्वारा है, और परिणाम i == 0
है।
N1570 से उद्धरित, 6.3.1.4 रियल फ्लोटिंग और पूर्णांक:
- जब अचल चल प्रकार की एक निश्चित मान एक पूर्णांक _Bool के अलावा अन्य प्रकार में बदल जाती है, आंशिक हिस्सा त्याग दिया जाता है (यानी, मूल्य शून्य की ओर छोटा कर दिया गया है)।अभिन्न अंग का मूल्य पूर्णांक प्रकार से प्रदर्शित नहीं किया जा सकता है, तो व्यवहार undefined.61)
61) remaindering कार्रवाई जब पूर्णांक प्रकार का एक मूल्य अहस्ताक्षरित प्रकार की जरूरत में बदल जाती है है तब नहीं किया जा सकता जब वास्तविक फ़्लोटिंग प्रकार के मान को हस्ताक्षरित प्रकार में परिवर्तित किया जाता है। इस प्रकार, पोर्टेबल असली फ़्लोटिंग मानों की श्रेणी है (-1, Utype_MAX + 1)।
N869 से उद्धरित, 6.3.1.4 रियल फ्लोटिंग और पूर्णांक:
# 1
जब अचल चल प्रकार की एक निश्चित मूल्य _Bool के अलावा अन्य कोई पूर्णांक प्रकार में बदल जाती है, आंशिक भाग को त्याग दिया जाता है (यानी, मान शून्य की ओर छोटा कर दिया जाता है)। अभिन्न अंग का मूल्य पूर्णांक प्रकार से प्रदर्शित नहीं किया जा सकता है, तो व्यवहार undefined.43)
43) है remaindering कार्रवाई जब पूर्णांक प्रकार का एक मूल्य अहस्ताक्षरित प्रकार में बदल जाती है की जरूरत नहीं है जब वास्तविक फ़्लोटिंग प्रकार के मान को हस्ताक्षरित प्रकार में परिवर्तित किया जाता है तब किया जाता है। इस प्रकार, पोर्टेबल असली फ़्लोटिंग मानों की श्रेणी है (-1, Utype_MAX + 1)।
हालांकि, अगर आप कोटेशन से देखते हैं, सीमा (-1, Utype_MAX +1) के बाहर फ्लोटिंग प्वाइंट स्थिरांक कन्वर्ट करने के लिए कोशिश कर सकते हैं के रूप में invokes अपरिभाषित व्यवहार।
स्रोत
2016-04-06 16:50:36
कृपया _converted_ को परिभाषित करें। –
क्या आपने ** इसे आजमाया **? आपको किस तरह की समस्या हो रही है? – jtbandes
@jtbandes: यह एक गहरा सवाल है। यह सबसे अच्छा, कार्यान्वयन परिभाषित किया जाएगा। – Bathsheba