পর্ব ২১: সি তে প্রিপ্রসেসর ও ম্যাক্রো | Preprocessor and Macros in C

🎯 এই পর্বে যা জানবে:

  • প্রিপ্রসেসর কী এবং কেন দরকার
  • ম্যাক্রো (#define) এর কাজ
  • কন্ডিশনাল কম্পাইলেশন (#if, #ifdef, #ifndef)
  • ফাইল ইনক্লুড (#include)
  • উদাহরণসহ প্রোগ্রাম

🧠 প্রিপ্রসেসর কী?

C প্রোগ্রাম কম্পাইল হওয়ার আগে একটি বিশেষ ধাপ চলে, যাকে বলে Preprocessing
এই ধাপে প্রোগ্রামের শুরুতে থাকা সব # (hash) চিহ্ন দিয়ে শুরু হওয়া নির্দেশগুলো (directives) কাজ করে।

এগুলোকে বলা হয় Preprocessor Directives
👉 এরা আসল কোড রান হওয়ার আগেই কাজ সম্পন্ন করে।


⚙️ সাধারণ প্রিপ্রসেসর ডিরেক্টিভ

নির্দেশনাকাজ
#includeঅন্য ফাইল ইনক্লুড করা
#defineম্যাক্রো বা কনস্ট্যান্ট ডিফাইন করা
#undefপূর্বে ডিফাইন করা ম্যাক্রো মুছে ফেলা
#ifdef / #ifndefকন্ডিশন অনুযায়ী কোড চালানো
#if, #else, #elif, #endifশর্তযুক্ত কম্পাইলেশন

💡 উদাহরণ ১: #include ব্যবহার

এখানে <math.h> ইনক্লুড করে আমরা sqrt() ফাংশন ব্যবহার করতে পেরেছি।


💡 উদাহরণ ২: #define ম্যাক্রো

আউটপুট:

এখানে PI একটি ম্যাক্রো — কম্পাইলার আসল কোড রান করার আগেই PI কে 3.1416 দিয়ে প্রতিস্থাপন করে।


💡 উদাহরণ ৩: ম্যাক্রোতে প্যারামিটার ব্যবহার

আউটপুট:


🔍 কন্ডিশনাল কম্পাইলেশন

কখনও কখনও নির্দিষ্ট শর্তে কিছু কোড চালাতে হয়, বাকি অংশ বাদ দিতে হয়। তখন ব্যবহৃত হয় নিচের ডিরেক্টিভগুলো —

  • #if
  • #else
  • #elif
  • #endif
  • #ifdef
  • #ifndef

উদাহরণ:

আউটপুট:


⚡ প্রিপ্রসেসর নিয়ে কিছু টিপস

✅ প্রিপ্রসেসর ডিরেক্টিভের শেষে সেমিকোলন (;) লাগে না
✅ ম্যাক্রো দিয়ে কনস্ট্যান্ট ডিফাইন করলে প্রোগ্রাম পড়তে সহজ হয়
✅ কন্ডিশনাল কম্পাইলেশন বড় প্রজেক্টে ডিবাগিং সহজ করে
✅ ইনক্লুড গার্ড (#ifndef, #define, #endif) হেডার ফাইল সুরক্ষায় ব্যবহৃত হয়


🚀 সংক্ষেপে

  • প্রিপ্রসেসর কম্পাইলের আগে কাজ করে
  • #define দিয়ে কনস্ট্যান্ট ও ম্যাক্রো ডিফাইন হয়
  • #include দিয়ে বাহ্যিক ফাইল যুক্ত করা যায়
  • কন্ডিশনাল কম্পাইলেশন বড় প্রজেক্টে দরকারি

C প্রোগ্রামিং টিউটোরিয়াল (৩০ পর্বে)