निम्नलिखित कथन वास्तव में क्या करता है और इसका क्या प्रभाव है?सी ++ #pragma पैक
#pragma pack(push,8)
निम्नलिखित कथन वास्तव में क्या करता है और इसका क्या प्रभाव है?सी ++ #pragma पैक
#pragma pack(push,8)
यह (ताकि आप pop
के माध्यम से बाद में इसे बहाल कर सकते हैं) एक ढेर पर वर्तमान pack
सेटिंग धक्का और फिर 8 बाइट्स struct तत्वों के लिए संरेखण सेट करता है। जो कुछ भी 8 बाइट सीमा से स्वाभाविक रूप से गठबंधन नहीं किया गया है, उसके लिए आवश्यक संरेखण को बनाए रखने के लिए पहले पैडिंग बाइट डाले जाएंगे।
प्रभावों को देखने के लिए बस एक अतिरिक्त: विभिन्न आकारों के कुछ तत्वों (जैसे ' चार', 'छोटा', 'लंबा', 'डबल')। फिर 'sizeof' का उपयोग कर संरचना का आकार निर्धारित करें। 'N' (उदा। 1, 2, 4, 8) के लिए विभिन्न मानों के साथ संरचना के चारों ओर' #pragma पैक (पुश, एन) 'और' #pragma पैक (पॉप) 'की एक जोड़ी रखें। देखें कि 'sizeof' के परिणाम कैसे बदलते हैं। एक विकल्प के रूप में, संरचना के तत्वों के सापेक्ष पते में परिवर्तन देखें। – Flinsch
http://msdn.microsoft.com/en-us/library/2e70t5y1(VS.80).aspx –