ফাংশন ক্যাটেগরাইজেশন
আর্গুমেন্ট আছে/নেই এবং রিটার্ন ভ্যালু আছে/নেই — এই দুটি ফ্যাক্টর অনুযায়ী ফাংশন ৪ প্রকারে ভাগ করা যায়।
| ক্যাটেগরি | আর্গুমেন্ট | রিটার্ন | উদাহরণ সিনট্যাক্স |
|---|---|---|---|
| ১. নো আর্গুমেন্ট, নো রিটার্ন | না | না | void func(); |
| ২. নো আর্গুমেন্ট, উইথ রিটার্ন | না | হ্যাঁ | int func(); |
| ৩. উইথ আর্গুমেন্ট, নো রিটার্ন | হ্যাঁ | না | void func(int, int); |
| ৪. উইথ আর্গুমেন্ট, উইথ রিটার্ন | হ্যাঁ | হ্যাঁ | int func(int, int); |
১. নো আর্গুমেন্ট, নো রিটার্ন
ফাংশন ইনপুট নেয় না, আউটপুট দেয় না। সাধারণত ডিসপ্লে বা ইনিশিয়ালাইজেশনের জন্য।
#include <stdio.h>
void sum(); // প্রোটোটাইপ
int main() {
sum(); // কল
return 0;
}
void sum() {
int a, b, c;
printf("Enter 2 numbers: ");
scanf("%d %d", &a, &b);
c = a + b;
printf("Sum = %d\n", c);
}
আউটপুট
Enter 2 numbers: 3 5 Sum = 8
২. নো আর্গুমেন্ট, উইথ রিটার্ন
ইনপুট নেয় না, কিন্তু ফলাফল রিটার্ন করে।
#include <stdio.h>
int sum();
int main() {
int c = sum();
printf("Sum = %d\n", c);
return 0;
}
int sum() {
int a, b, c;
printf("Enter 2 numbers: ");
scanf("%d %d", &a, &b);
c = a + b;
return c;
}
আউটপুট
Enter 2 numbers: 10 20 Sum = 30
৩. উইথ আর্গুমেন্ট, নো রিটার্ন
কলার থেকে ডেটা গ্রহণ করে, ফলাফল প্রিন্ট করে কিন্তু রিটার্ন করে না।
#include <stdio.h>
void sum(int a, int b);
int main() {
int a, b;
printf("Enter 2 numbers: ");
scanf("%d %d", &a, &b);
sum(a, b);
return 0;
}
void sum(int a, int b) {
int c = a + b;
printf("Sum = %d\n", c);
}
আউটপুট
Enter 2 numbers: 10 20 Sum = 30
৪. উইথ আর্গুমেন্ট, উইথ রিটার্ন (সবচেয়ে ব্যবহারিক)
ইনপুট নেয়, প্রসেস করে, ফলাফল রিটার্ন করে। রিয়ূজেবল এবং টেস্টযোগ্য।
#include <stdio.h>
int sum(int a, int b);
int main() {
int a, b, c;
printf("Enter 2 numbers: ");
scanf("%d %d", &a, &b);
c = sum(a, b);
printf("Sum = %d\n", c);
return 0;
}
int sum(int a, int b) {
return a + b;
}
আউটপুট
Enter 2 numbers: 10 20 Sum = 30
কোনটি কখন ব্যবহার করবেন?
- ক্যাটেগরি ৪ — সবচেয়ে ফ্লেক্সিবল, রিয়ূজেবল, টেস্ট করা সহজ।
- ক্যাটেগরি ৩ — আউটপুট প্রিন্ট করার মতো সাইড-ইফেক্টের জন্য।
- ক্যাটেগরি ২ — ইনপুট ফাংশন ভিতরে নেওয়া হলে।
- ক্যাটেগরি ১ — সিম্পল টাস্ক, মেনু ডিসপ্লে ইত্যাদির জন্য।