"अपरिभाषित व्यवहार" का मतलब सी resp। सी ++ मानक आपके प्रोग्राम के व्यवहार को परिभाषित नहीं करते हैं। यदि आपके प्रोग्राम में इनलाइन असेंबली है, तो यह स्पष्ट होना चाहिए कि इसका व्यवहार आमतौर पर सी या सी ++ मानक द्वारा वर्णित नहीं किया जाएगा। कुछ अन्य मानक भी व्यवहार को परिभाषित कर सकते हैं, लेकिन सी या सी ++ मानक के संदर्भ में इसका अभी भी "परिभाषित व्यवहार" नहीं है।
उस ने कहा, सी मानक को समर्थित एक्सटेंशन के दस्तावेज़ की आवश्यकता होती है।
4. अनुरूपता
: अपने कार्यक्रम के व्यवहार अपने कार्यान्वयन के दस्तावेज़ से अनुमान लगाया जा सकता है, तो और अपने कार्यान्वयन अपने कार्यक्रम अलग तरह से व्यवहार करता है, कि अपने कार्यान्वयन की विफलता मानक के अनुरूप करने के लिए है
8 एक कार्यान्वयन एक दस्तावेज़ के साथ होगा जो सभी कार्यान्वयन-परिभाषित और लोकेल-विशिष्ट विशेषताओं और सभी एक्सटेंशन को परिभाषित करता है।
सी ++ के लिए, इस आवश्यकता को कमजोर कर दिया गया है
1,4 कार्यान्वयन अनुपालन [intro.compliance]
9 प्रत्येक कार्यान्वयन प्रलेखन है कि यह है कि सभी को सशर्त समर्थन निर्माणों की पहचान करता है में शामिल होगा सभी लोकेल-विशिष्ट विशेषताओं का समर्थन और परिभाषित नहीं करता है।
और
1,9 कार्यक्रम निष्पादन [intro.execution]
2 कुछ पहलुओं और अमूर्त मशीन के संचालन के रूप में इस अंतर्राष्ट्रीय मानक में वर्णित हैं कार्यान्वयन से परिभाषित [... ] प्रत्येक कार्यान्वयन में इन विशेषताओं में अपनी विशेषताओं और व्यवहार का वर्णन करने वाले दस्तावेज शामिल होंगे। [...]
मैं दस्तावेजों को दस्तावेज करने के लिए एक आवश्यकता नहीं ढूंढ पा रहा हूं, और यदि दस्तावेज़ित किया गया है, तो सही तरीके से दस्तावेज किया जाना चाहिए। यह सुझाव देगा कि सी ++ में, भले ही आपका कार्यान्वयन आपके कार्यक्रम के व्यवहार को विस्तार के रूप में परिभाषित करता है, अगर यह पता चला कि दस्तावेज गलत है, तो यह बहुत बुरा है।
सी ++ सेमी-मानक asm
कथन के लिए (जैसा कि टिप्पणियों में उल्लिखित है, "asm
घोषणा सशर्त रूप से समर्थित है; इसका अर्थ कार्यान्वयन-परिभाषित है।"), यदि आपका कार्यान्वयन इसका समर्थन करता है तो इसे दस्तावेज करने की आवश्यकता है, लेकिन निश्चित रूप से सी ++ मानक द्वारा संकेतित की तुलना में इनलाइन असेंबली को अलग तरीके से समर्थन देने के लिए कार्यान्वयन के लिए सामान्य अभ्यास है, इसलिए यह आपको बहुत अधिक नहीं देता है।
यह एक बहुत ही रोचक सवाल है। मैं भी जानना चाहता हूं। – callyalater
क्या इनलाइन एएसएम मानक सी या सी ++ पहले स्थान पर है? मैं ईमानदारी से नहीं जानता। यदि नहीं, तो पूरा सवाल मुझे लगता है कि चमकदार जमीन पर खड़ा है। –
वैसे भी [dcl.asm] है: * 'asm' घोषणा सशर्त रूप से समर्थित है; इसका अर्थ कार्यान्वयन-परिभाषित है। * – NathanOliver