यदि मेरे कोड में कहीं भी, तो मैं एक चर के पते का उपयोग करता हूं (उदाहरण के लिए इसे किसी अन्य फ़ंक्शन पर पास करता हूं), संकलक स्वचालित रूप से इसे स्मृति में संग्रहीत करना चुनता है? (एक रजिस्टर में इसे संग्रहीत करने की संभावना के विपरीत)।एक रजिस्टर में संग्रहीत एक चर के पते
अन्यथा, अगर मैं उस चर के पते के लिए पूछता हूं (रजिस्टर के रूप में संग्रहीत) क्या होता है तो क्या होगा? मुझे पता है कि हम चर के पते को स्पष्ट रूप से पंजीकृत करने के लिए सेट नहीं कर सकते हैं (register int c
)।
संपादित:
उदाहरण के लिए, अगर मैं ऐसा कर सकता है
int c = 1;
print("Address of c: %p", &c);
की तरह कुछ तो इस चर एक रजिस्टर में संग्रहीत नहीं किया जा सका करते हैं,? संकलक स्वचालित रूप से इसे स्मृति में संग्रहीत के रूप में सेट करेगा? अन्यथा (यदि यह सिर्फ एक रजिस्टर में संग्रहीत है), स्क्रीन में पता क्या पता होगा?
यह मेरे लिए अस्पष्ट है कि आप क्या पूछ रहे हैं। यदि आप फ़ंक्शन तर्कों के बारे में बात कर रहे हैं, तो वे सभी ढेर के माध्यम से संभाले जाते हैं। – alex
कुछ कॉलिंग सम्मेलन दूसरों को रजिस्टरों का उपयोग करते हैं, या दोनों के संयोजन का उपयोग करते हैं। वे सभी ढेर द्वारा नियंत्रित नहीं होते हैं, जब तक कि आप एक विशिष्ट कंपाइलर के साथ एक विशिष्ट वास्तुकला पर एक विशिष्ट कॉलिंग सम्मेलन के बारे में बात नहीं कर रहे हैं। –
मेरा मतलब है कि एक सामान्य अर्थ में चर के पते का उपयोग करना। उदाहरण के लिए, मैं सिर्फ स्क्रीन पर पता मुद्रित कर सकता था। –