सिस्टम मांग करते हैं कि कुछ प्राइमेटिव्स को स्मृति के भीतर कुछ बिंदुओं के साथ गठबंधन किया जाए (बाइट्स में इन्ट्स जो 4 के गुणक हैं, बाइट्स के शॉर्ट्स जो 2 के गुणक हैं)। बेशक, इन्हें पैडिंग में कम से कम जगह बर्बाद करने के लिए अनुकूलित किया जा सकता है।जीसीसी क्यों structs अनुकूलित नहीं करता है?
मेरा सवाल यह है कि जीसीसी स्वचालित रूप से ऐसा क्यों नहीं करता है? क्या अधिक स्पष्ट ह्युरिस्टिक (सबसे बड़ी आकार की आवश्यकता से ऑर्डर वेरिएबल्स को कम से कम) कुछ तरीकों से कमी है? क्या कुछ कोड अपने structs के भौतिक क्रम पर निर्भर है (क्या यह एक अच्छा विचार है)?
मैं केवल इसलिए पूछ रहा हूं क्योंकि जीसीसी कई तरीकों से सुपर अनुकूलित है लेकिन इस में नहीं, और मैं सोच रहा हूं कि कुछ अपेक्षाकृत शांत स्पष्टीकरण होना चाहिए (जिसके लिए मैं अनजान हूं)।
हां, लेकिन यह इस तरह से क्यों परिभाषित किया गया था? – nes1983
@ nes1983 प्रोग्रामर संरचना में डेटा के क्रम के रूप में धारणाएं कर सकता है और प्रत्येक भाग प्राप्त करने के लिए मास्किंग का उपयोग कर सकता है। यदि मास्किंग की तुलना में संरचना को फिर से व्यवस्थित किया गया है तो यह गलत होगा। – Evo510
@ ईवो 510: मैं उलझन में हूं। मास्किंग का उपयोग करने के लिए, आपको पैडिंग भी जाननी है, जिसे भाषा द्वारा गारंटी नहीं है। तो, आप मास्क का उपयोग नहीं कर सकते हैं। क्या मैं कुछ भूल रहा हूँ? – nes1983