2013-06-27 6 views
10

मैंने सुना है कि सी में, मुख्य() पुनर्वित्त है, जबकि सी ++ में नहीं है।क्या मुख्य() फ़ंक्शन पुन: प्रवेशकर्ता है?

क्या यह सच है? मुख्य() फ़ंक्शन को फिर से दर्ज करने का परिदृश्य क्या है?

+7

मुझे नहीं लगता कि आपका मतलब है [पुनर्वित्त] (http://en.wikipedia.org/wiki/Reentrancy_ (कंप्यूटिंग))। यह सच है हालांकि आपको सी में 'मुख्य' कॉल करने की अनुमति है और आपको इसे C++ में कॉल करने की अनुमति नहीं है। –

उत्तर

16

शुरुआती सी ++ कार्यान्वयन, जो सी के अनुवाद पर आधारित थे, ने main की शुरुआत में एक फ़ंक्शन कॉल जोड़कर वैश्विक रचनाकारों को लागू किया। इस तरह के कार्यान्वयन के तहत, main को फिर से कॉल करना वैश्विक सीटर्स को फिर से चलाएगा, जिसके परिणामस्वरूप विनाश हो गया था, इसलिए इसे ऐसा करने के लिए मना किया गया था।

सी दूसरी तरफ main पर कॉल करने से मना करने का कोई कारण नहीं था, और यह हमेशा परंपरागत रूप से संभव था।

जब यह उपयोगी होता है, तो मैं "शायद ही कभी" कहूंगा। मैंने देखा है कि अधिकांश कार्यक्रम जिन्हें main कहा जाता था IOCCC प्रविष्टियां थीं।

संबंधित मुद्दे