ভূমিকা
C/C++-এ `#` চিহ্ন দিয়ে শুরু হওয়া লাইনগুলো প্রিপ্রসেসর ডাইরেক্টিভ (Preprocessor Directive)। কম্পাইলেশনের আগে এই লাইনগুলো প্রসেস হয়। মূলত তিন ধরনের ডাইরেক্টিভ:
- Conditional Compilation (#ifdef, #elif, #else, #endif)
- Line Control (#line)
- Error Directive (#error)
১. কন্ডিশনাল কম্পাইলেশন (Conditional Compilation)
ম্যাক্রো ডিফাইন করা আছে কিনা চেক করে কোড কম্পাইল করা হয়।
#include#define MY_MACRO 10 using namespace std; int main() { #ifdef MACRO cout << "MACRO defined"; #elif MY_MACRO cout << "MY_MACRO defined: " << MY_MACRO; #endif return 0; } // আউটপুট: MY_MACRO defined: 10
২. লাইন কন্ট্রোল (Line Control)
`#line` দিয়ে বর্তমান লাইন নম্বর পরিবর্তন করা যায়। এরর রিপোর্টিংয়ে সাহায্য করে।
#includeusing namespace std; int main() { cout << "Line: " << __LINE__ << endl; // 5 #line 200 cout << "Hello" << endl; // line 201 cout << "World" << endl; // line 202 cout << "Line: " << __LINE__ << endl; // 203 return 0; }
৩. এরর ডাইরেক্টিভ (Error Directive)
`#error` দিয়ে কম্পাইল টাইমে এরর মেসেজ দেখানো যায়।
#includeusing namespace std; int main() { #ifdef MY_MACRO cout << "Defined: " << MY_MACRO; #else #error "MY_MACRO must be defined!" #endif return 0; } // কম্পাইল এরর: MY_MACRO must be defined!
সারসংক্ষেপ
প্রিপ্রসেসর ডাইরেক্টিভস কোডকে লচіль, কনফিগারেবল ও ডিবাগ-ফ্রেন্ডলি করে।