"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > सी फ़ंक्शन कॉल में स्टैक क्लीनअप के लिए कॉलर कब जिम्मेदार होता है?

सी फ़ंक्शन कॉल में स्टैक क्लीनअप के लिए कॉलर कब जिम्मेदार होता है?

2024-11-10 को प्रकाशित
ब्राउज़ करें:504

When is the Caller Responsible for Stack Cleanup in C Function Calls?

stdcall और cdecl: कॉल कन्वेंशन और स्टैक क्लीनअप

stdcall और cdecl प्रोग्रामिंग में उपयोग की जाने वाली दो सामान्य कॉलिंग कन्वेंशन हैं भाषाएँ। डेवलपर्स के पास अक्सर उनकी कार्यक्षमता और अनुकूलता के बारे में प्रश्न होते हैं।

1. स्टैक क्लीनअप जिम्मेदारी

जब एक cdecl फ़ंक्शन को कॉल किया जाता है, तो कॉल करने वाला फ़ंक्शन वापस आने के बाद स्टैक को साफ़ करने के लिए ज़िम्मेदार होता है। ऐसा इसलिए है क्योंकि cdecl कॉलिंग कन्वेंशन निर्दिष्ट करता है कि कैली (जिसे फ़ंक्शन कहा जाता है) स्टैक को साफ़ नहीं करता है। कंपाइलर फ़ंक्शन के कॉलिंग कन्वेंशन को जानकर, तदनुसार कोड उत्पन्न करता है।

2. बेमेल कॉलिंग कन्वेंशन

आमतौर पर एक कॉलिंग कन्वेंशन वाले फ़ंक्शन के लिए किसी फ़ंक्शन को दूसरे कॉलिंग कन्वेंशन के साथ कॉल करना कोई समस्या नहीं है। उदाहरण के लिए, एक stdcall फ़ंक्शन एक cdecl फ़ंक्शन को कॉल कर सकता है, और इसके विपरीत। हालाँकि, यह सुनिश्चित करना महत्वपूर्ण है कि कंपाइलर बेमेल कॉलिंग कन्वेंशन से संबंधित कोई त्रुटि जारी नहीं करता है।

3. प्रदर्शन संबंधी विचार

आमतौर पर stdcall और cdecl कॉलिंग सम्मेलनों के बीच कोई महत्वपूर्ण प्रदर्शन अंतर नहीं होता है। कंपाइलर कॉलिंग कन्वेंशन के आधार पर स्टैक क्लीनअप और पैरामीटर पासिंग के लिए कुशलतापूर्वक कोड उत्पन्न करता है।

विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729683354 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3