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() ^~~~