सी
सी प्रोग्रामिंग भाषा में, यदि किसी फ़ंक्शन हस्ताक्षर में कोई पैरामीटर नहीं है तो यह इनपुट के रूप में कई तर्क ले सकता है लेकिन सी ++ के साथ भी ऐसा नहीं है। यदि 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() ^~~~