ईएक्स का उपयोग 32 बिट प्लेटफॉर्म में फ़ंक्शन के रिटर्न वैल्यू को स्टोर करने के लिए किया जाता है, मुझे आश्चर्य है कि फ़ंक्शन के रिटर्न वैल्यू का आकार 4 बाइट्स से बड़ा है, ईएक्स इसे कैसे संभालता है? इस मामले में ओएस स्टैक पर रिटर्न वैल्यू को सेव कर सकता है और ईएक्स में स्टैक के पते को स्टोर कर सकता है, लेकिन फिर ओएस कैसे बता सकता है कि ईएक्स में संग्रहीत मूल्य रिटर्न वैल्यू का पता है या वास्तव में रिटर्न वैल्यू है?ईएक्स स्टोर वापसी मूल्य कैसे आकार का आकार 4 बाइट से बड़ा हो सकता है?
उत्तर
कॉलर और कैली को रजिस्ट्रार और स्टैक के बारे में सहमत होना चाहिए। इसे calling convention कहा जाता है, जो application binary interface (ABI) नामक एक बड़ी अवधारणा का हिस्सा है। कैली परिभाषित करता है कि यह कैसे कहना चाहता है (यानी क्या तर्क स्टैक्स पर, रजिस्टरों आदि में होने की आवश्यकता है) और संकलक यह सुनिश्चित करता है कि जो कोड उत्पन्न करता है वह कॉलिंग सम्मेलन का अनुपालन करता है।
आपके विशिष्ट प्रश्न के लिए, यह एबीआई पर निर्भर करता है। कभी-कभी यदि वापसी मान 4 बाइट से बड़ा है लेकिन 8 बाइट से बड़ा नहीं है, तो इसे ईएक्स और ईडीएक्स में विभाजित किया जा सकता है। लेकिन ज्यादातर समय कॉलिंग फ़ंक्शन कुछ मेमोरी (आमतौर पर ढेर पर) आवंटित करेगा और इस क्षेत्र में कॉलर को कॉल करने के लिए एक पॉइंटर पास करेगा।
ध्यान दें कि ओएस की भूमिका उतनी महत्वपूर्ण नहीं है जितनी आप सोचते हैं। विभिन्न कॉलिंग सम्मेलनों वाले द्विआधारी एक ही सिस्टम पर सह-अस्तित्व में हो सकते हैं, और द्विआधारी आंतरिक रूप से विभिन्न कॉलिंग सम्मेलनों का भी उपयोग कर सकते हैं। ओएस का एबीआई केवल तभी महत्वपूर्ण होता है जब बाइनरी सिस्टम सिस्टम पुस्तकालयों को कॉल करे।
- 1. सबसे बड़ा मूल्य आकार (टी) क्या पैदा कर सकता है?
- 2. एलआईए ईएक्स, [ईएक्स] का क्या मतलब है?
- 3. कस्टम बाइट आकार?
- 4. मेरे यूनियन का आकार मुझे अपेक्षा से बड़ा क्यों है?
- 5. फ़ाइल से अंतिम बाइट पढ़ें और आकार
- 6. चेतावनी: "मिन फ़ॉन्ट वर्तमान फ़ॉन्ट आकार से बड़ा आकार"
- 7. पॉलीगॉन छेड़छाड़ विफल हो जाती है, टकराव "आकार" बहुत बड़ा
- 8. स्मृति में बाइट का आकार - जावा
- 9. std :: unique_ptr का कोई आकार ओवरहेड कैसे हो सकता है?
- 10. कोरोना एसडीके आवेदन का आकार बहुत बड़ा है
- 11. va_list - केवल बाइट आकार ज्ञात है!
- 12. जावा हैश मैप का आकार() अपनी वास्तविक प्रविष्टियों के आकार के साथ समन्वयित हो सकता है?
- 13. क्रोम डेस्कटॉप नोटिफिकेशन - बड़ा आकार
- 14. सबसे बड़ा आकार क्या है जो एक .msi विंडोज़ पैकेज इंस्टॉलर फ़ाइल हो सकता है?
- 15. मोंगो डीबी: संग्रह आकार आकार से अधिक आकार का परिणाम
- 16. ActiveRecord ArgumentError: नकारात्मक स्ट्रिंग आकार (या आकार बहुत बड़ा)
- 17. मोंगोडीबी - फ़ाइल का आकार बड़ा और बढ़ रहा है
- 18. क्यों आकार (param_array) सूचक का आकार है?
- 19. आधार वर्गों का शून्य आकार क्यों हो सकता है?
- 20. पीडीएफ ए 4 आकार
- 21. PostgreSQL डेटाबेस आकार (टेबल-स्पेस आकार) बहुत बड़ा तो संबंधों
- 22. आकार
- 23. ओरेकल ब्लॉब्स - स्टोर का आकार या गणना?
- 24. एनएसएनंबर स्टोर करने का सबसे बड़ा मूल्य क्या है?
- 25. jquery ui डेटपिकर फ़ॉन्ट का आकार बड़ा है
- 26. एक सत्र परिवर्तक अधिकतम आकार क्या हो सकता है?
- 27. यूनिटी आईफोन ऐप का आकार बहुत बड़ा है
- 28. प्रत्येक एएसएम निर्देश का आकार क्या है?
- 29. pg_column_size octet_length से छोटा कैसे हो सकता है?
- 30. स्ट्रिंग कन्स्ट्रक्टर में 'originalValue.length> आकार' कैसे हो सकता है?
इस प्रश्न का उत्तर देखें: http://stackoverflow.com/questions/2155730/how-do-c-compilers-implement-functions-that-return-large- संरचनाएं –