मैं निम्नलिखित आज के समान कोड भर में आया था और मैं के रूप में उत्सुक हूँ क्या वास्तव में क्या हो रहा है:निष्पादन क्षेत्रों और इनपुट अनुभागों का अतिसंवेदनशीलता क्या है?
#pragma pack(1)
__align(2) static unsigned char multi_array[7][24] = { 0 };
__align(2) static unsigned char another_multi_array[7][24] = { 0 };
#pragma pack()
जब Keil संकलक में __align कीवर्ड के लिए एक संदर्भ के लिए खोज, मैं इस पार आया:
निष्पादन क्षेत्रों और इनपुट वर्गों के Overalignment वहां स्थितियों जब आप कोड और डेटा वर्गों overalign करने के लिए ... आप मूल स्रोत कोड के लिए उपयोग किया है, तो आप __align साथ संकलन समय पर ऐसा कर सकते हैं (एन चाहते हैं) कीवर्ड ...
मुझे समझ में नहीं आता कि "ओवरलैगिंग कोड और डेटा अनुभाग" का क्या अर्थ है। क्या कोई यह स्पष्ट करने में मदद कर सकता है कि यह अतिसंवेदनशीलता कैसे होती है?
ओवरलैमेंट एआरएम पर उपयोगी हो सकता है। "लोड तत्काल" (एमओवी) निर्देश पूरे 32-बिट मान को लोड नहीं कर सकता है। इसके बजाय यह एक समय में 8 बिट्स लोड कर सकता है, किसी भी स्थिति में घूमता है। इस कारण से, आपका कोड अधिक शून्य बिट्स में पते को समाप्त करने का प्रयास कर रहा है, जिससे संकलित कोड को पॉइंटर मान लोड करने में आसान/तेज़ बना दिया जा सकता है। –