में पैकिंग या पैडिंग डेटा मैं जीएनयू जीसीसी कंपाइलर के साथ कोड :: ब्लॉक आईडीई का उपयोग कर रहा हूं।सी/सी ++: एक संरचना
struct test
{
char a;
char e;
char f;
char b;
char d;
};
sizeof(test)
रिटर्न 5
। , Why isn't sizeof for a struct equal to the sum of sizeof of each member?
कैसे आ पिछले char
के बाद कोई पैडिंग है ताकि sizeof(test)
रिटर्न 6
या 8
:
मैं इस सवाल का जवाब पढ़ा है? short
और int
इत्यादि जोड़ने के बाद मैं एक और सवाल पूछ सकता हूं, लेकिन मुझे लगता है कि यह सवाल अभी के लिए अच्छा है। प्रोसेसर के साथ काम करने के लिए पैडिंग करना आसान नहीं होगा?
ठीक है, तो मान लें कि मेरा शब्द आकार 4 बाइट है। मान लें कि मेरे पास एक सरणी 'टेस्ट स्टफ [1000] 'है। मेरा प्रोसेसर व्यक्तिगत 'टेस्ट' जैसे 'चार-चार-चार-चार चार-पैड-पैड-पैड' पढ़ता है। स्मृति में सरणी को इस तरह स्वरूपित करने की आवश्यकता नहीं है? – newprogrammer
@ न्यूप्रोग्रामर संख्या। यह संरचना के सदस्यों के सरणी के सदस्यों के बीच पैडिंग के बिना 5000 बाइट होगा। – asaelr
@ न्यूप्रोग्रामर: आपकी संरचना में कोई "शब्द" नहीं है, इसलिए "शब्द" के लिए आवश्यक संरेखण अप्रासंगिक है। –