int main() — ফাংশনটি কোনো প্যারামিটার নেয় না বলে নির্দিষ্ট করে না। সি-তে এটি মানে ফাংশনটি যেকোনো সংখ্যক আর্গুমেন্ট নিতে পারে।
int main(void) — স্পষ্টভাবে বলে যে ফাংশনটি কোনো আর্গুমেন্ট নেবে না। এটি টেকনিক্যালি বেশি সঠিক এবং কম্পাইলারকে সতর্ক করে।
উদাহরণ ১: int main() আর্গুমেন্ট নিয়ে কল
#include <stdio.h>
int main() {
static int a = 10;
if (a--) {
printf("after decrement a =%d\n", a);
main(10); // আর্গুমেন্ট দিয়ে কল — কম্পাইল হয় (ওয়ার্নিং দিয়ে)
}
return 0;
}
আউটপুট: ৯ থেকে ০ পর্যন্ত প্রিন্ট হবে।
উদাহরণ ২: int main(void) আর্গুমেন্ট নিয়ে কল
#include <stdio.h>
int main(void) {
static int a = 10;
if (a--) {
printf("after decrement a =%d\n", a);
main(10); // এরর: too many arguments to function 'main'
}
return 0;
}
আউটপুট: error
সুতরাং
int main(void)ব্যবহার করা ভালো প্র্যাকটিস।- রিকার্সিভ কলের সময় আর্গুমেন্ট ছাড়াই কল করতে হয়:
main()।