C में मुख्य फ़ंक्शन को पुनरावर्ती रूप से कॉल करना
कोड स्निपेट ने C में मुख्य() फ़ंक्शन को पुनरावर्ती रूप से कॉल करने का प्रयास प्रदान किया। हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि सख्त सी अनुपालन में इस व्यवहार की अनुमति नहीं है। , कोई फ़ंक्शन मुख्य() फ़ंक्शन सहित स्वयं को सीधे कॉल नहीं कर सकता है। इस प्रतिबंध का उद्देश्य अनंत रिकर्सन को रोकना और प्रोग्राम समाप्ति की गारंटी देना है। जीएनयू सी कंपाइलर (जी) का उपयोग करना। जी इस संबंध में मानक को सख्ती से लागू नहीं करता है, पुनरावर्ती मुख्य() कॉल वाले कोड को संकलित और निष्पादित करने की अनुमति देता है।
उदाहरण कोड
निम्नलिखित संशोधित कोड स्निपेट g :
#include
असेंबली विश्लेषण
इस कोड के लिए उत्पन्न असेंबली की जांच से पता चलता है कि जी किसी अन्य फ़ंक्शन कॉल की तरह पुनरावर्ती मुख्य() कॉल का इलाज करता है:#include
#include
using namespace std;
int main() {
int y = rand() % 10; // returns 3, then 6, then 7
cout नोट:y = 3
y = 6
y = 7
हालांकि यह व्यवहार g के साथ संभव है, यह ध्यान रखना महत्वपूर्ण है कि इसकी गारंटी नहीं है। अन्य कंपाइलर सी मानक का सख्ती से पालन कर सकते हैं, जिसके परिणामस्वरूप संकलन त्रुटियां या अप्रत्याशित व्यवहार हो सकता है। इसलिए, पुनरावर्ती मुख्य() कॉल का उपयोग अनुशंसित अभ्यास नहीं है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3