ফাংশনের দুটি প্রধান প্রকার
- প্রিডিফাইনড / লাইব্রেরি ফাংশন (Predefined/Library Functions)
- ইউজার-ডিফাইনড ফাংশন (User-defined Functions)
১. প্রিডিফাইনড / লাইব্রেরি ফাংশন
- সিস্টেম লাইব্রেরিতে প্রিডিফাইনড থাকে।
- প্রোগ্রামার কোড রিয়ুজ করতে পারে, এরর-ফ্রি কোড লেখা যায়।
- সিনট্যাক্স জানতে হয়, হেডার ফাইল ইনক্লুড করতে হয়।
উদাহরণ
sqrt() — math.h (স্কোয়ার রুট)
printf(), scanf() — stdio.h
clrscr(), getch() — conio.h (পুরনো কম্পাইলার)
প্রোগ্রাম: sqrt() ব্যবহার
#include <stdio.h>
#include <math.h>
int main() {
int x, y;
printf("Enter a positive number: ");
scanf("%d", &x);
y = sqrt(x);
printf("Square root = %d\n", y);
return 0;
}
আউটপুট
Enter a positive number: 25
Square root = 5
২. ইউজার-ডিফাইনড ফাংশন
- প্রোগ্রামার নিজে লিখে, টেস্ট করে, ব্যবহার করে।
- হেডার ফাইল লাগে না।
- সিনট্যাক্স প্রোগ্রামার নিজে নির্ধারণ করে।
উদাহরণ: sum() ফাংশন
#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
তুলনা
| বিষয় | লাইব্রেরি ফাংশন | ইউজার-ডিফাইনড |
| লেখা কে? | কম্পাইলার ভেন্ডর / স্ট্যান্ডার্ড কমিটি | প্রোগ্রামার |
| হেডার ফাইল | দরকার | দরকার নেই |
| মডিফাই করা যায়? | না | হ্যাঁ |
| উদাহরণ | printf, sqrt, strlen | main, sum, swap, display |
সর্বোত্তম অনুশীলন
- বারবার ব্যবহার হওয়া লজিককে ইউজার-ডিফাইনড ফাংশনে বানান।
- স্ট্যান্ডার্ড লাইব্রেরি ফাংশন জানুন এবং ব্যবহার করুন (চাকা পুনরাবिष्कার করবেন না)।
- ফাংশন প্রোটোটাইপ
main()-এর আগে বা হেডার ফাইলে রাখুন।