कहता है कि मेरे पास 2 फ़ील्ड और सी के कार्यान्वयन के साथ एक संरचना है जिसमें मेरे पास इन क्षेत्रों के बीच कुछ पैडिंग भी है।क्या स्ट्रक्चर असाइनमेंट गारंटी पैडिंग बराबर
यदि मैं संरचना के दो चर बना देता हूं और एक दूसरे को असाइन करता हूं, तो क्या पैडिंग बराबर होने की गारंटी होगी?
मुझे पता है कि अधिकांश कंपाइलरों के लिए ऐसा होगा (क्योंकि वे सिर्फ memcpy कहते हैं), लेकिन मैं जानना चाहता हूं कि मानक में पैडिंग के बारे में क्या निर्दिष्ट है?
इस प्रश्न का इरादा है, क्या मैं structs की समानता की जांच के लिए memcmp
का उपयोग कर सकता हूं।
कहें कि मेरे पास एक कंपाइलर है जो कोड को उत्सर्जित करता है जो memcpy
करने के बजाय संरचना के सभी सदस्यों को निर्दिष्ट करता है, क्या यह संरचना संचालन के असाइनमेंट का वैध कार्यान्वयन होगा?
आप पैडिंग * मान * के बारे में चिंतित हैं, आकार नहीं, सही? –
सामान्य पैडिंग में एक ही सामग्री नहीं होगी। ऐसा लगता है कि यह शुरू नहीं हुआ है।'X = y' के मामले में, मुझे लगता है कि पैडिंग समान है या नहीं, कार्यान्वयन निर्भर है। – BLUEPIXY
@EugeneSh। हां पैडिंग के मूल्य, पैडिंग का आकार समान होगा क्योंकि वे एक ही संरचना हैं। –