C और C++ में main फंक्शन के दो सामान्य घोषणा स्टाइल हैं, जिनमें सूक्ष्म लेकिन महत्वपूर्ण अंतर हैं।
C में अंतर
| घोषणा | अर्थ | आर्गुमेंट्स के साथ कॉल |
|---|---|---|
int main() | आर्गुमेंट्स अनिर्दिष्ट (पुराना स्टाइल) | किसी भी संख्या में आर्गुमेंट्स अनुमत (कोई चेक नहीं) |
int main(void) | कोई आर्गुमेंट नहीं (प्रोटोटाइप) | कंपाइल एरर यदि आर्गुमेंट्स पास किए जाएं |
उदाहरण 1: main() - आर्गुमेंट्स स्वीकार करता है
#include <stdio.h>
void my_function() { } // कोई पैरामीटर नहीं
int main() { // पुराना स्टाइल
my_function(10, "Hello", "World"); // कंपाइल होता है! (चेतावनी के साथ)
return 0;
}
उदाहरण 2: main(void) - आर्गुमेंट्स अस्वीकार करता है
#include <stdio.h>
void my_function(void) { } // स्पष्ट void
int main(void) { // प्रोटोटाइप
my_function(10, "Hello", "World"); // कंपाइल एरर: too many arguments
return 0;
}
C++ में अंतर
- C++ में
()और(void)**समानार्थी** हैं - दोनों का अर्थ "कोई पैरामीटर नहीं" है। - उपरोक्त दोनों उदाहरण C++ में कंपाइल एरर देंगे।
सर्वोत्तम अभ्यास
- C: हमेशा
int main(void)उपयोग करें जब कोई आर्गुमेंट न हो। - C++:
int main()मानक और प्राथमिक है। - कमांड-लाइन आर्गुमेंट्स:
int main(int argc, char *argv[])याint main(int argc, char **argv)उपयोग करें।
मानक आवश्यकता
C और C++ दोनों मानकों के अनुसार, main का रिटर्न टाइप int होना चाहिए। void main() गैर-मानक है।