কম্পিউটার টিউটোরিয়াল

C/C++ প্রিপ্রসেসর ডাইরেক্টিভস (Preprocessor Directives)


ভূমিকা

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` দিয়ে বর্তমান লাইন নম্বর পরিবর্তন করা যায়। এরর রিপোর্টিংয়ে সাহায্য করে।

#include 
using 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` দিয়ে কম্পাইল টাইমে এরর মেসেজ দেখানো যায়।

#include 
using 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!

সারসংক্ষেপ

প্রিপ্রসেসর ডাইরেক্টিভস কোডকে লচіль, কনফিগারেবল ও ডিবাগ-ফ্রেন্ডলি করে।

  1. C/C++-তে putwchar() ফাংশন

  2. C/C++-তে memcpy() ফাংশন

  3. AA ট্রি: C/C++-তে ব্যালেন্সড ট্রি ডেটা স্ট্রাকচার

  4. সি/সি++-এ প্রিপ্রসেসর কীভাবে কাজ করে? (How a Preprocessor works)