Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी और सी ++ में अपरिभाषित, अनिर्दिष्ट, और कार्यान्वयन-परिभाषित व्यवहार के बीच अंतर?

<शरीर>

अपरिभाषित व्यवहार केवल व्यवहार है जिसे सी ++ विनिर्देश द्वारा परिभाषित नहीं किया गया है। उदाहरण के लिए, यदि आपके पास i++ +++i जैसे एक्सप्रेशन में कई यूनरी इंक्रीमेंट/डिक्रीमेंट ऑपरेशंस हैं, तो वे ऐसे व्यवहार में परिणत होते हैं जो परिभाषित नहीं है। यह केवल इस तथ्य के कारण है कि कुछ भाषा संरचनाएं वाक्य रचनात्मक रूप से मान्य हैं लेकिन जब कोड चलाया जाता है तो आप व्यवहार की भविष्यवाणी नहीं कर सकते हैं। एक अन्य उदाहरण व्यंजक है:u =(u++);

कार्यान्वयन-परिभाषित व्यवहार विनिर्देश द्वारा अनिर्दिष्ट व्यवहार है और कार्यान्वयनकर्ता के लिए यह तय करने और दस्तावेज करने के लिए छोड़ दिया जाता है कि चुनाव कैसे किया जाता है। इस मामले में, जो चुनाव किया जाता है उसकी गारंटी होनी चाहिए, यानी केवल वही होना चाहिए।

अनिर्दिष्ट व्यवहार के मामले में, C++ मानक कई संभावित पथ प्रदान करता है जिसके लिए दस्तावेज़ीकरण या किसी भी चीज़ की गारंटी के कार्यान्वयन की आवश्यकता नहीं होती है।


  1. सी ++ में नए ऑपरेटर और ऑपरेटर के बीच अंतर?

    C++ में जब हम एक नई वस्तु बनाना चाहते हैं, तो हमें मेमोरी में एक मेमोरी ब्लॉक बनाना होगा, फिर मेमोरी ब्लॉक को इनिशियलाइज़ करने के लिए कंस्ट्रक्टर को भी कॉल करना होगा। हम new कीवर्ड का उपयोग करके मेमोरी एलिमेंट बना सकते हैं। यह नया ऑपरेटर लगातार दो टास्क कर रहा है। लेकिन ऑपरेटर नया केवल मेमोरी स्पेस

  1. सी ++ में 'स्ट्रक्चर' और 'टाइपिफ़ स्ट्रक्चर' के बीच अंतर?

    C++ में, struct और typedef struct के बीच कोई अंतर नहीं है, क्योंकि C++ में, सभी struct/union/enum/class घोषणाएं इस तरह काम करती हैं जैसे वे परोक्ष रूप से typedef हैं। एड, जब तक नाम उसी नाम के साथ किसी अन्य घोषणा द्वारा छिपाया नहीं जाता है। हालांकि एक सूक्ष्म अंतर है कि टाइपपीफ को आगे घोषित नहीं किया

  1. C++ स्ट्रिंग स्थिरांक और वर्ण स्थिरांक के बीच अंतर

    C++ में, सिंगल कोट्स में एक कैरेक्टर एक कैरेक्टर लिटरल होता है। यह चार प्रकार का है। उदाहरण के लिए, ए ASCII आधारित सिस्टम पर 97 के मान के साथ चार प्रकार का है। दोहरे उद्धरण चिह्नों में एक वर्ण या वर्णों की एक स्ट्रिंग एक स्ट्रिंग अक्षर का प्रतिनिधित्व करती है। यह प्रकार का है const char[] और स्ट्रि