int main दर्शाता है कि फंक्शन प्रोग्राम निष्पादन के अंत में कुछ पूर्णांक यहां तक कि '0' भी वापस करता है। '0' प्रोग्राम के सफल निष्पादन को दर्शाता है।
int main का सिंटैक्स निम्नानुसार है:
int main(){ --- --- return 0; }int main(void) दर्शाता है कि फंक्शन कोई आर्गुमेंट नहीं लेता। मान लीजिए, यदि हम ब्रैकेट में void नहीं रखते हैं, तो फंक्शन किसी भी संख्या में आर्गुमेंट लेगा।
int main(void) का सिंटैक्स निम्नानुसार है:
int main(void){ --- --- return 0; }वास्तव में, दोनों समान प्रतीत होते हैं लेकिन, int main(void) तकनीकी रूप से बेहतर है क्योंकि यह स्पष्ट रूप से उल्लेख करता है कि main को केवल बिना किसी पैरामीटर के कॉल किया जा सकता है।
आम तौर पर, C भाषा में, यदि किसी फंक्शन सिग्नेचर में कोई आर्गुमेंट निर्दिष्ट नहीं है, तो वह फंक्शन किसी भी संख्या में पैरामीटर्स के साथ या बिना किसी पैरामीटर के कॉल किया जा सकता है।
आइए दोनों फंक्शन्स के लिए कोड को लागू करने के लिए समान तर्क लें। इन फंक्शन्स के लिए एकमात्र अंतर सिंटैक्स है।
उदाहरण 1
नीचे दिया गया C प्रोग्राम आर्गुमेंट्स के बिना int main() फंक्शन के लिए है:
#include <stdio.h> int main(){ static int a = 10; if (a--){ printf("after decrement a =%d\n", a); main(10); } return 0; }आउटपुट
जब उपरोक्त प्रोग्राम निष्पादित होता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है:
after decrement a =9 after decrement a =8 after decrement a =7 after decrement a =6 after decrement a =5 after decrement a =4 after decrement a =3 after decrement a =2 after decrement a =1 after decrement a =0
उदाहरण 2
नीचे दिया गया वही प्रोग्राम है लेकिन int main(void) फंक्शन के साथ:
#include <stdio.h> int main(){ static int a = 10; if (a--){ printf("after decrement a =%d\n", a); main(10); } return 0; }आउटपुट
जब उपरोक्त प्रोग्राम निष्पादित होता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है:
error
यदि हम int main() और int main(void) के लिए समान कोड लिखते हैं तो हमें त्रुटि मिलेगी। ऐसा इसलिए होता है क्योंकि void इंगित करता है कि फंक्शन कोई पैरामीटर नहीं लेता।
तो, उपरोक्त उदाहरण में main में आर्गुमेंट 10 को हटाने का प्रयास करें और कंपाइल करें। इसलिए, सुधार के बाद उपरोक्त कोड निम्नानुसार होगा:
उदाहरण
#include <stdio.h> int main(){ static int a = 10; if (a--){ printf("after decrement a =%d\n", a); main(); } return 0; }आउटपुट
जब उपरोक्त प्रोग्राम निष्पादित होता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है:
after decrement a =9 after decrement a =8 after decrement a =7 after decrement a =6 after decrement a =5 after decrement a =4 after decrement a =3 after decrement a =2 after decrement a =1 after decrement a =0