सी
सी प्रोग्रामिंग भाषा में, यदि किसी फ़ंक्शन हस्ताक्षर में कोई पैरामीटर नहीं है तो यह इनपुट के रूप में कई तर्क ले सकता है लेकिन सी ++ के साथ भी ऐसा नहीं है। यदि C++ में ऐसे फ़ंक्शन के लिए तर्क पारित किए जाते हैं तो संकलन विफल हो जाएगा। यही कारण है कि int main() और int main(void) C में समान हैं, लेकिन int main(void) बेहतर तरीका है, जो उपयोगकर्ता को मुख्य फ़ंक्शन के लिए कई तर्क पारित करने के लिए प्रतिबंधित करता है।
उदाहरण (सी)
#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() ^~~~