কম্পিউটার

C-তে int main এবং int main(void) ফাংশনের মধ্যে পার্থক্য করুন


int main প্রতিনিধিত্ব করে যে ফাংশনটি প্রোগ্রাম এক্সিকিউশনের শেষে কিছু পূর্ণসংখ্যা এমনকি '0' প্রদান করে। '0' একটি প্রোগ্রামের সফল সঞ্চালনের প্রতিনিধিত্ব করে।

int main এর সিনট্যাক্স নিম্নরূপ -

int main(){
   ---
   ---
   return 0;
}

int main(void) প্রতিনিধিত্ব করে যে ফাংশন কোন যুক্তি নেয় না। ধরুন, যদি আমরা বন্ধনীতে void না রাখি, ফাংশনটি যেকোন সংখ্যক আর্গুমেন্ট নেবে।

int main(void) এর সিনট্যাক্স নিম্নরূপ -

int main(void){
   ---
   ---
   return 0;
}

প্রকৃতপক্ষে, উভয়ই একই বলে মনে হচ্ছে কিন্তু, int main(void) প্রযুক্তিগতভাবে ভাল কারণ এটি স্পষ্টভাবে উল্লেখ করে যে main শুধুমাত্র কোনো প্যারামিটার ছাড়াই বলা যেতে পারে।

সাধারণত, সি ভাষায়, যদি একটি ফাংশন স্বাক্ষর কোনো যুক্তি নির্দিষ্ট না করে, তাহলে ফাংশনটিকে যেকোনো সংখ্যক প্যারামিটার সহ বা কোনো প্যারামিটার ছাড়াই কল করা যেতে পারে।

উভয় ফাংশনের জন্য কোড বাস্তবায়নের জন্য একই যুক্তি গ্রহণ করা যাক। একমাত্র পার্থক্য হল এই ফাংশনগুলির জন্য সিনট্যাক্স।

উদাহরণ 1

নিচে আর্গুমেন্ট ছাড়া int main() ফাংশনের জন্য C প্রোগ্রাম দেওয়া হল −

#include <stdio.h>
int main(){
   static int a = 10;
   if (a--){
      printf("after decrement a =%d\n", a);
      main(10);
   }
   return 0;
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

after decrement a =9
after decrement a =8
after decrement a =7
after decrement a =6
after decrement a =5
after decrement a =4
after decrement a =3
after decrement a =2
after decrement a =1
after decrement a =0

উদাহরণ 2

নীচে দেওয়া একই প্রোগ্রাম কিন্তু int main(void) ফাংশন −

সহ
#include <stdio.h>
int main(){
   static int a = 10;
   if (a--){
      printf("after decrement a =%d\n", a);
      main(10);
   }
   return 0;
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

error

আমরা int main() এবং int main(void) এর জন্য একই কোড লিখলে আমরা একটি ত্রুটি পাব। এটি ঘটে কারণ void নির্দেশ করে যে ফাংশনটি কোন প্যারামিটার নেয় না।

সুতরাং, উপরের উদাহরণে প্রধান আর্গুমেন্ট 10 মুছে ফেলার চেষ্টা করুন এবং কম্পাইল করুন। তাই, সংশোধনের পর উপরের কোডটি হবে −

উদাহরণ

#include <stdio.h>
int main(){
   static int a = 10;
   if (a--){
      printf("after decrement a =%d\n", a);
      main();
   }
   return 0;
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

after decrement a =9
after decrement a =8
after decrement a =7
after decrement a =6
after decrement a =5
after decrement a =4
after decrement a =3
after decrement a =2
after decrement a =1
after decrement a =0

  1. C# এ int.Parse() এবং Convert.ToInt32-এর মধ্যে প্রধান পার্থক্য কী?

  2. C# এ পদ্ধতি এবং ফাংশনের মধ্যে পার্থক্য

  3. C# এ পাবলিক, স্ট্যাটিক এবং ভয়েড কীওয়ার্ডের মধ্যে পার্থক্য কী?

  4. পাইথনে পদ্ধতি এবং ফাংশনের মধ্যে পার্থক্য