मैंने सुना है कि जीसीसी के हाल के संस्करण फ़ंक्शन पॉइंटर्स के माध्यम से सीधे कॉल करने के लिए कॉल को परिवर्तित करने में बहुत अच्छे हैं। हालांकि, मुझे वेब पर इसके बारे में कुछ भी नहीं मिल रहा है या जीसीसी के स्रोत कोड के माध्यम से त्वरित रूप से नहीं दिख रहा है। क्या किसी को पता है कि यह वास्तव में सच है और यदि हां, तो यह करने के लिए यह क्या एल्गोरिदम उपयोग करता है?फ़ंक्शन पॉइंटर्स के माध्यम से सीधे कॉल करने के लिए कॉल को कन्वर्ट करने के लिए जीसीसी किस एल्गोरिदम का उपयोग करता है?
5
A
उत्तर
0
यह मूल्य प्रसार का एक रूप है। यदि मैं साबित कर सकता हूं कि ऑब्जेक्ट पॉइंटर पी (वर्चुअल कैल्स में) हमेशा किसी विशेष कंक्रीट क्लास की ऑब्जेक्ट को इंगित करता है, तो मैं उस वर्ग के सदस्य फ़ंक्शंस को सीधे कॉल कर सकता हूं। यदि नहीं, तो मुझे vtable से गुज़रना होगा।
1
आपको यह लेख दिलचस्प लगेगा। यह दिनांकित 2005 है, और मुझे यकीन है कि अगर 'हाल ही' पर्याप्त नहीं कर रहा हूँ, लेकिन यह व्यापक विषय के साथ सौदों:
संबंधित मुद्दे
- 1. रुबी: क्यों कॉल करने के लिए कॉल करता है?
- 2. ऑब्जेक्ट प्रॉपर्टी को सीधे कॉल करने के लिए कॉलिंग क्लोजर
- 3. फ़ंक्शन को बार-बार कॉल करने के लिए फ़ंक्शन?
- 4. फ़ंक्शन कॉल को परिभाषित करने के लिए प्रीप्रोसेसर का उपयोग करने का नकारात्मक पक्ष क्या है?
- 5. एक सीधे ड्रा के लिए पोकर हाथ का परीक्षण करने के लिए एल्गोरिदम (4 से सीधे)?
- 6. एंड्रॉइड जावा विधियों को सीधे कॉल करने के लिए जेआरबीई का उपयोग
- 7. foreach कॉल GetEnumerator() कैसे कॉल करता है? IENumerable संदर्भ के माध्यम से या ... के माध्यम से?
- 8. फोर्स व्युत्पन्न वर्ग को बेस फ़ंक्शन कॉल करने के लिए
- 9. कार्यों को कॉल करने के लिए argparse आउटपुट का उपयोग
- 10. फ़ंक्शन को कॉल करने के बजाय "syscall" का उपयोग करने के क्या कारण हैं?
- 11. super.onPause() को कॉल करने के लिए कब?
- 12. समय-समय पर जावास्क्रिप्ट फ़ंक्शन को कॉल करने के लिए
- 13. मानचित्र तुलना ऑपरेटर कॉल करने के लिए कॉल
- 14. जीसीसी 4.0: "कोई मिलता-जुलता फ़ंक्शन को कॉल करने के लिए" टेम्पलेट समारोह में
- 15. मेमसेट में दोहराना उपसर्ग का उपयोग करने के लिए फोर्स जीसीसी() कॉल
- 16. इंटरसेप्ट फोन कॉल जानकारी प्रदर्शित करने के लिए कॉल
- 17. क्या यह एक ही फ़ंक्शन को कॉल करने के लिए एकाधिक धागे के लिए सुरक्षित है?
- 18. जावा एपीआई फोन कॉल करने के लिए
- 19. javax स्क्रिप्ट जावा से जावास्क्रिप्ट में फ़ंक्शन को कॉल करने के लिए कैसे करें
- 20. * फ़ंक्शन * कॉल करने के बाद * ऑनपेरेंशन चेंज?
- 21. सर्वर मोड में Ghostscript का उपयोग PNG का करने के लिए पीडीएफ़ कन्वर्ट करने के लिए
- 22. एक कस्टम फ़ंक्शन को कॉल करने के लिए jQuery .trigger का उपयोग करें जो एक मान
- 23. ओपनसीवी के बेयर रूपांतरण का उपयोग किस एल्गोरिदम करता है?
- 24. रूबी को कर्ल करने के लिए सिस्टम कॉल करने के लिए सही वाक्यविन्यास क्या है?
- 25. कैसे संदर्भ मेनू कॉल करने के लिए
- 26. PHP: क्या कक्षा को विस्तारित करने के लिए नामस्थान को कॉल करने के लिए किसी अन्य 'उपयोग' की आवश्यकता है?
- 27. क्या सी # जेनेरिक वर्चुअल फ़ंक्शन कॉल को विस्तारित करने के लिए उपयोग किया जा सकता है?
- 28. फोन कॉल करने के लिए वेब एपीआई
- 29. सी में फ़ंक्शन पॉइंटर के माध्यम से एक स्थैतिक फ़ंक्शन को कॉल किया जा सकता है?
- 30. संपत्ति परिवर्तन के बाद विधि को कॉल करने के लिए
मैं, जीसीसी के अंदरूनी कामकाज से परिचित नहीं हूँ, लेकिन सामान्य तौर पर, अगर एक संकलक यह साबित कर सकता है कि फ़ंक्शन पॉइंटर के पास केवल कुछ कॉल साइट पर एक विशेष मान हो सकता है, फिर उस कॉल को फ़ंक्शन पॉइंटर के माध्यम से अप्रत्यक्ष कॉल के बजाय विशिष्ट पॉइंटर मान पर प्रत्यक्ष कॉल के रूप में एन्कोड किया जा सकता है। –