C
সি প্রোগ্রামিং ল্যাঙ্গুয়েজে, যদি একটি ফাংশন সিগনেচারে কোনো প্যারামিটার না থাকে তবে এটি ইনপুট হিসাবে একাধিক আর্গুমেন্ট নিতে পারে কিন্তু C++ এর ক্ষেত্রে এটি সত্য নয়। আর্গুমেন্ট C++ এ এই ধরনের ফাংশনে পাস করা হলে কম্পাইলেশন ব্যর্থ হবে। এই কারণেই C-তে int main() এবং int main(void) একই, কিন্তু int main(void) হল আরও ভাল পন্থা, যা ব্যবহারকারীকে প্রধান ফাংশনে একাধিক আর্গুমেন্ট পাস করতে বাধা দেয়।
উদাহরণ (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() ^~~~