C
C प्रोग्रामिंग भाषा में, यदि किसी फंक्शन सिग्नेचर में कोई पैरामीटर नहीं है तो यह इनपुट के रूप में कई आर्गुमेंट्स ले सकता है लेकिन C++ के साथ ऐसा नहीं है। यदि आर्गुमेंट्स को C++ में ऐसे फंक्शन में पास किया जाता है तो कंपाइलेशन फेल हो जाएगा। यही कारण है कि int main() और int main(void) C में समान हैं, लेकिन int main(void) बेहतर दृष्टिकोण है, जो यूजर को main फंक्शन में कई आर्गुमेंट्स पास करने से रोकता है।
उदाहरण (C)
#include <stdio.h>
int main() {
static int counter = 3;
if (--counter) {
printf("%d ", counter);
main(5);
}
}
आउटपुट
2 1
उदाहरण (C++)
#include <iostream>
using namespace std;
int main() {
static int counter = 3;
if (--counter) {
cout << counter;
main(5);
}
}
आउटपुट
main.cpp: In function 'int main()': main.cpp:10:13: error: too many arguments to function 'int main()' main(5); ^ main.cpp:5:5: note: declared here int main() ^~~~