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

static_cast<> और C स्टाइल कास्टिंग में क्या अंतर है?

यहां हम देखेंगे कि static_cast<> और सामान्य C स्टाइल कास्ट में क्या अंतर हैं।

सामान्य कास्ट जैसे (int)x सी स्टाइल टाइपकास्टिंग है जहां static_cast(x) का उपयोग C++ में किया जाता है।

यह static_cast<>() कंपाइल टाइम चेकिंग सुविधा देता है, लेकिन C स्टाइल कास्टिंग इसका समर्थन नहीं करता है। यह static_cast<>() किसी C++ कोड के अंदर कहीं भी देखा जा सकता है। और इस C++ कास्ट का उपयोग करके इंटेंस को बहुत बेहतर तरीके से व्यक्त किया जाता है।

C जैसे कास्ट में कभी-कभी हम किसी अन्य प्रकार के डेटा को इंगित करने के लिए कुछ प्रकार के पॉइंटर डाल सकते हैं।

जैसे एक पूर्णांक सूचक भी वर्ण प्रकार के डेटा को इंगित कर सकता है, क्योंकि वे काफी समान हैं, केवल अंतर वर्ण में 1-बाइट है, पूर्णांक में 4-बाइट है। C++ में static_cast<>() C की तरह कास्टिंग की तुलना में अधिक सख्त है। यह केवल संगत प्रकारों के बीच परिवर्तित होता है।

उदाहरण

char c = 65; //1-byte data. ASCII of ‘A’
int *ptr = (int*)&c; //4-byte

चूंकि 4-बाइट पॉइंटर में, यह आवंटित मेमोरी के 1-बाइट की ओर इशारा कर रहा है, यह रनटाइम त्रुटि उत्पन्न कर सकता है या कुछ आसन्न मेमोरी को अधिलेखित कर देगा।

C++ में static_cast<>() कंपाइलर को यह जांचने की अनुमति देगा कि पॉइंटर और डेटा एक ही प्रकार के हैं या नहीं। यदि नहीं, तो यह संकलन के दौरान गलत पॉइंटर असाइनमेंट अपवाद उठाएगा।

char c = 65; //1-byte data. ASCII of ‘A’
int *ptr = static_cast<int>(&c);
. का ASCII

यह संकलन समय त्रुटि उत्पन्न करेगा।


  1. DirectX 11 और DirectX 12 में क्या अंतर है? DirectX 11 और DirectX 12 में क्या अंतर है?

    DirectX, एपीआई या एप्लिकेशन प्रोग्रामिंग इंटरफेस का एक संग्रह है, जिसका उपयोग सॉफ्टवेयर द्वारा मल्टीमीडिया सामग्री को प्रस्तुत करने और ग्राफिकल हार्डवेयर के साथ संचार करने के लिए किया जाता है। DirectX का प्रमुख घटक API, Direct3D, सॉफ्टवेयर और ग्राफिक्स हार्डवेयर के बीच संचार को संभालता है। चूंकि सभी

  1. - सी # में सूची और शब्दकोश के बीच क्या अंतर है?

    Dictionary C# में कुंजियों और मानों का एक संग्रह है। Dictionary System.Collection.Generics नेमस्पेस में शामिल है। शब्दकोश एक सामान्य प्रकार है और यदि आप कोई ऐसी कुंजी खोजने का प्रयास करते हैं जो वहां नहीं है तो एक त्रुटि देता है। सूची संग्रह एक सामान्य वर्ग है और सूची बनाने के लिए किसी भी डेटा प्रक

  1. - C# में टाइप कनवर्ज़न और टाइप कास्टिंग में क्या अंतर है?

    सी # में टाइप रूपांतरण और टाइप कास्टिंग समान हैं। यह एक प्रकार के डेटा को दूसरे प्रकार में परिवर्तित कर रहा है। C# में, टाइप कास्टिंग के दो रूप होते हैं - अंतर्निहित प्रकार रूपांतरण - ये रूपांतरण C# द्वारा टाइप-सेफ तरीके से किए जाते हैं। उदाहरण के लिए, छोटे से बड़े अभिन्न प्रकारों में रूपांतरण और