फ़ंक्शन तर्क दाएं से बाएं क्रम में स्टैक पर क्यों धक्का दिए जाते हैं?फ़ंक्शन तर्क पुश ऑर्डर
उत्तर
प्रिंटफ की तरह परिवर्तनीय संख्या के साथ कार्यों के अस्तित्व को सक्षम करने के लिए। फ़ंक्शन पहले एक या दो तर्क निकाल सकता है और फिर स्टैक पर तर्कों की कुल संख्या को कम करने के लिए अपने मानों का उपयोग कर सकता है।
मुझे यह उल्लेख करना चाहिए कि सी मानक में कुछ भी नहीं है जिसके लिए इसकी आवश्यकता है (वास्तव में, मुझे नहीं लगता कि यह भी एक स्टैक _ _ququires_ है)। आप उन्हें अन्य क्रम में आसानी से धक्का दे सकते हैं, इसके बाद आप पहली बार पा सकते हैं (मस्तिष्क-मृत हालांकि कार्यान्वयन होगा)। इसे अपने उत्तर की आलोचना के रूप में न लें क्योंकि आप सही मर चुके हैं। + 1. – paxdiablo
रजिस्ट्रारों में तर्कों की संख्या पारित की जा सकती है, और यहां तक कि सामान्य पैरामीटर भी रजिस्टरों में पास किए जा सकते हैं। या आप पैरामीटर के बावजूद आखिरी गिनती को धक्का दे सकते हैं। इसलिए इससे कोई फर्क नहीं पड़ता कि आप किस क्रम का उपयोग करते हैं –
एकमात्र कारण वैरैडिक फ़ंक्शंस के लिए है: स्टैक से पॉप किए गए पहले तर्क फ़ंक्शन के लिए "ज्ञात" हैं, और यह उनसे निर्धारित कर सकता है कि इसे स्टैक से कितने अन्य तर्क पढ़ना चाहिए।
ध्यान दें कि, यह ठीक काम करने के लिए, इस तरह के कॉलिंग सम्मेलनों में स्टैक क्लीनअप कॉलर को छोड़ दिया जाता है, जो जानता है कि यह स्टैक पर कितने तर्कों को धक्का देता है। यह कैली-क्लीनअप की तुलना में थोड़ा कम कुशल है, क्योंकि प्रत्येक फ़ंक्शन कॉल के बाद क्लीनअप कोड लिखा जाना चाहिए, जबकि उन सम्मेलनों को कॉल करने में जो भिन्न कार्यों को अनुमति नहीं देते हैं, इसे प्रत्येक फ़ंक्शन के अंत में एम्बेड किया जा सकता है।
इसके अलावा, कोई विशेष कारण नहीं है, तथ्यों में कई कॉलिंग सम्मेलन (उदा। Pascal, Borland Fastcall) हैं जो चरम कार्यों को स्वीकार नहीं करते हैं और दाईं ओर बाएं पैरामीटर को धक्का देते हैं।
आप बाएं से दाएं धक्का दे सकते हैं और तर्कों की संख्या को दबा सकते हैं, यह अलग नहीं है –
- 1. तर्क पुश ऑर्डर
- 2. जीएलएसएल में दूसरा ऑर्डर फ़ंक्शन?
- 3. फ़ंक्शन तर्क
- 4. फ़ंक्शन तर्क
- 5. टाइपस्क्रिप्ट - उच्च ऑर्डर फ़ंक्शन प्रकार
- 6. जावा हायर ऑर्डर पॉलीमोर्फिक फ़ंक्शन
- 7. उच्च ऑर्डर फ़ंक्शन का प्रकार
- 8. अनपॅकिंग फ़ंक्शन तर्क
- 9. std :: startizer_list फ़ंक्शन तर्क
- 10. फ़ंक्शन टेम्पलेट तर्क
- 11. एक तर्क, कई फ़ंक्शन
- 12. गतिशील फ़ंक्शन तर्क
- 13. एक्सकोड: फ़ंक्शन तर्क इंडेंटेशन
- 14. क्यों वीसी ++ कंपाइलर एमओवी + पुश सिर्फ पुश के बजाय तर्क देता है? x86
- 15. फ़ंक्शन/विधि तर्क सत्यापन मानकों
- 16. AsyncCallback फ़ंक्शन को तर्क दें?
- 17. क्यों फ़ंक्शन तर्क को अस्थिर
- 18. वर्चुअल फ़ंक्शन डिफ़ॉल्ट तर्क व्यवहार
- 19. पायथन सूची फ़ंक्शन तर्क नाम
- 20. असाइनमेंट ऑपरेटर में सी ++ फ़ंक्शन मूल्यांकन ऑर्डर
- 21. एमवीसी ऑर्डर, प्राथमिकता और फ़ंक्शन प्रश्न
- 22. फ़ंक्शन ऑर्डर कब मायने रखता है?
- 23. पुश
- 24. पुश
- 25. पुश
- 26. परिवर्तनीय तर्क वाले फ़ंक्शन में फ़ंक्शन पॉइंटर कैसे पास करें?
- 27. फ़ंक्शन टेम्पलेट में डिफ़ॉल्ट तर्क C++
- 28. बढ़ावा :: फ़ंक्शन तर्क के लिए डिफ़ॉल्ट मान?
- 29. फ़ंक्शन तर्क में पायथन नंगे तारांकन
- 30. फ़ंक्शन टेम्पलेट्स के लिए डिफ़ॉल्ट टेम्पलेट तर्क
@ कुछ प्लेटफ़ॉर्म (एआरएम और पावरपीसी) कुछ कार्यों को रजिस्टरों में धक्का देते हैं और वे कभी भी ढेर पर दिखाई नहीं दे सकते हैं। – doron