कोई अंतर्निहित कारण नहीं है कि दूसरे की तुलना में प्रदर्शन में बेहतर क्यों होगा। विभिन्न कंपाइलर, और उनमें से संस्करण भिन्न हो सकते हैं, इसलिए यदि आप वास्तव में परवाह करते हैं, तो आप प्रोफाइल और बेंचमार्क और निर्णय लेने के आधार पर तथ्यों का उपयोग करते हैं।
एक सीधी असाइनमेंट पढ़ने के लिए स्पष्ट है।
असाइनमेंट गलत होने के लिए एक किशोर थोड़ा जोखिम भरा है, ताकि आप संकेतकों के बजाए structs को पॉइंटर्स असाइन कर सकें। यदि आप इससे डरते हैं, तो आप सुनिश्चित करेंगे कि आपके यूनिट परीक्षणों को कवर किया जाए। मुझे इस जोखिम की परवाह नहीं है। (इसी प्रकार, memcpy
क्योंकि आप struct आकार गलत हो सकती है जोखिम भरा है।)
स्रोत
2011-03-21 14:23:36
बस संरचना के अंदर स्मृति आवंटन से सावधान रहें। उदाहरण के लिए यदि आपके पास एक स्ट्रक्चर है जिसमें स्ट्रिंग में पॉइंटर होता है और आप स्ट्रिंग के लिए मेमोरी आवंटित करते हैं। वह स्मृति कॉपी नहीं होती है। स्मृति के सूचक को कॉपी किया जाता है, लेकिन स्मृति ही नहीं। दूसरे शब्द में इस प्रकार की असाइनमेंट गहरी प्रति नहीं है। उस माटर के लिए न ही वेनिला memcpy है। यह भ्रमित हो सकता है कि आवंटित स्मृति का मालिक कौन है। – Pemdas
मुझे लगता है कि यह प्रश्न स्टैक ओवरफ्लो के लिए अधिक उपयुक्त है। – karlphillip
मुझे लगता है कि इस प्रश्न का पहले से ही उत्तर दिया गया था: http://stackoverflow.com/q/4931123/176769 – karlphillip