🎯 এই পর্বে যা জানবে:
- প্রিপ্রসেসর কী এবং কেন দরকার
- ম্যাক্রো (#define) এর কাজ
- কন্ডিশনাল কম্পাইলেশন (#if, #ifdef, #ifndef)
- ফাইল ইনক্লুড (#include)
- উদাহরণসহ প্রোগ্রাম
🧠 প্রিপ্রসেসর কী?
C প্রোগ্রাম কম্পাইল হওয়ার আগে একটি বিশেষ ধাপ চলে, যাকে বলে Preprocessing।
এই ধাপে প্রোগ্রামের শুরুতে থাকা সব # (hash) চিহ্ন দিয়ে শুরু হওয়া নির্দেশগুলো (directives) কাজ করে।
এগুলোকে বলা হয় Preprocessor Directives।
👉 এরা আসল কোড রান হওয়ার আগেই কাজ সম্পন্ন করে।
⚙️ সাধারণ প্রিপ্রসেসর ডিরেক্টিভ
| নির্দেশনা | কাজ |
|---|---|
#include | অন্য ফাইল ইনক্লুড করা |
#define | ম্যাক্রো বা কনস্ট্যান্ট ডিফাইন করা |
#undef | পূর্বে ডিফাইন করা ম্যাক্রো মুছে ফেলা |
#ifdef / #ifndef | কন্ডিশন অনুযায়ী কোড চালানো |
#if, #else, #elif, #endif | শর্তযুক্ত কম্পাইলেশন |
💡 উদাহরণ ১: #include ব্যবহার
#include <stdio.h>
#include <math.h>
int main() {
double num = 9.0;
printf("Square root: %.2lf\n", sqrt(num));
return 0;
}এখানে <math.h> ইনক্লুড করে আমরা sqrt() ফাংশন ব্যবহার করতে পেরেছি।
💡 উদাহরণ ২: #define ম্যাক্রো
#include <stdio.h>
#define PI 3.1416
int main() {
float r = 5;
float area = PI * r * r;
printf("বৃত্তের ক্ষেত্রফল: %.2f\n", area);
return 0;
}আউটপুট:
বৃত্তের ক্ষেত্রফল: 78.54এখানে PI একটি ম্যাক্রো — কম্পাইলার আসল কোড রান করার আগেই PI কে 3.1416 দিয়ে প্রতিস্থাপন করে।
💡 উদাহরণ ৩: ম্যাক্রোতে প্যারামিটার ব্যবহার
#include <stdio.h>
#define SQUARE(x) ((x) * (x))
int main() {
int n = 5;
printf("Square of %d = %d\n", n, SQUARE(n));
return 0;
}আউটপুট:
Square of 5 = 25🔍 কন্ডিশনাল কম্পাইলেশন
কখনও কখনও নির্দিষ্ট শর্তে কিছু কোড চালাতে হয়, বাকি অংশ বাদ দিতে হয়। তখন ব্যবহৃত হয় নিচের ডিরেক্টিভগুলো —
#if#else#elif#endif#ifdef#ifndef
উদাহরণ:
#include <stdio.h>
#define DEBUG
int main() {
#ifdef DEBUG
printf("Debug mode ON\n");
#endif
printf("Program Running...\n");
return 0;
}আউটপুট:
Debug mode ON
Program Running...⚡ প্রিপ্রসেসর নিয়ে কিছু টিপস
✅ প্রিপ্রসেসর ডিরেক্টিভের শেষে সেমিকোলন (;) লাগে না
✅ ম্যাক্রো দিয়ে কনস্ট্যান্ট ডিফাইন করলে প্রোগ্রাম পড়তে সহজ হয়
✅ কন্ডিশনাল কম্পাইলেশন বড় প্রজেক্টে ডিবাগিং সহজ করে
✅ ইনক্লুড গার্ড (#ifndef, #define, #endif) হেডার ফাইল সুরক্ষায় ব্যবহৃত হয়
🚀 সংক্ষেপে
- প্রিপ্রসেসর কম্পাইলের আগে কাজ করে
#defineদিয়ে কনস্ট্যান্ট ও ম্যাক্রো ডিফাইন হয়#includeদিয়ে বাহ্যিক ফাইল যুক্ত করা যায়- কন্ডিশনাল কম্পাইলেশন বড় প্রজেক্টে দরকারি


