सकल आरंभीकरण के साथ एक समग्र वर्ग वस्तु प्रारंभ करने में aggrete वर्ग वस्तु का डेटा सदस्यों initializes, एक समग्र का मूल्य आरंभीकरण पहले यह प्रारंभ जो भी पैडिंग बाइट्स के रूप में पालन करते हुए दिखाया गया है बाहर शून्य, शून्य जाएगा, जबकि कल्पना बोलीसकल मूल्य बनाम गद्दी
यदि टी (संभवत: सीवी-योग्य) गैर संघ वर्ग प्रकार है, प्रत्येक गैर स्थैतिक डेटा सदस्य और प्रत्येक आधार स्तरीय subobject शून्य प्रारंभ और गद्दी शून्य बिट्स को आरंभ नहीं हो जाता है,
इसका मतलब है कि आम तौर पर एक के बजाय क्योंकि बाद यह सुनिश्चित करें कि गद्दी बिट्स शून्य हैं नहीं है ()
का उपयोग करने और {}
पसंद कुल structs आरंभ करने से बचना चाहिए करता है?
यदि उपर्युक्त का उत्तर "नहीं" है, तो ऐसे मामले हैं जहां कार्यान्वयन {}
के साथ पैडिंग नहीं भरते हैं लेकिन ()
के साथ करते हैं? और इन मामलों में, प्रोग्रामर के लिए उपयोग करने के लिए बेहतर विकल्प क्या है?
[क्लैंग] (http://coliru.stacked-crooked.com/a/e30e266d90c16662) नियम का सम्मान करता है, जबकि [gcc] (http://coliru.stacked-crooked.com/a/eff8609fc153d914) और एमएसवीसी अभी भी मेरे परीक्षण में पैडिंग बाइट्स निकाल देता है। – Jamboree