2012-11-24 34 views
6

C++ में, 3.6.1 मुख्य समारोहक्या मैं सी में मुख्य से वापसी छोड़ सकता हूं?

(3.6.1/5) मुख्य में एक वापसी कथन मुख्य कार्य (स्वचालित भंडारण अवधि के साथ किसी भी वस्तुओं को नष्ट करने) और साथ बाहर निकलें बुला छोड़ने का प्रभाव पड़ता है तर्क के रूप में वापसी मूल्य। यदि नियंत्रण रिटर्न स्टेटमेंट का सामना किए बिना मुख्य के अंत तक पहुंचता है, तो प्रभाव है जो रिटर्न 0 निष्पादित करने का है;

क्या मैं बिना वापसी के सी 99 में निम्नलिखित कर सकता हूं?

int main() { } 
+6

का एक मान देता है ++ मानक लेकिन सी मानक नहीं है? –

+0

@CarlNorum: क्या वे दोनों पैसे खर्च नहीं करते हैं? – NPE

+0

@ एनपीई: सी 99 मानक ऑनलाइन मुक्त रूप से उपलब्ध है। और संभावित डुप्लिकेट जो प्रश्न का उत्तर भी देता है: http://stackoverflow.com/q/204476/1202636 – effeffe

उत्तर

11

हाँ, C99 के रूप में, मुख्य रिटर्न 0 के अंत में } तक पहुंच गया है, तो main की वापसी प्रकार int साथ संगत है।

5.1.2.2.3 कार्यक्रम समाप्ति

हैं main समारोह की वापसी प्रकार int के साथ एक प्रकार संगत है, main कार्य करने के लिए प्रारंभिक कॉल से एक वापसी exit बुला के बराबर है main फ़ंक्शन द्वारा इसके तर्क के रूप में कार्य किए गए मान के साथ कार्य करें; 11)} तक पहुंचने से main फ़ंक्शन 0 का मान देता है। यदि वापसी का प्रकार int के साथ संगत नहीं है, तो होस्ट वातावरण में लौटाई गई समाप्ति स्थिति निर्दिष्ट नहीं है।

6

हाँ, C99 मानक कहते हैं (§5.1.2.2.3):

तक पहुँचने }main समारोह समाप्त हो जाता है कि आप एक सी है 0.