কম্পিউটার

C++ প্রিপ্রসেসর


প্রি-প্রসেসর হল নির্দেশিকা, যা প্রকৃত সংকলন শুরু হওয়ার আগে কম্পাইলারকে তথ্য প্রিপ্রসেস করার নির্দেশনা দেয়।

pAll প্রিপ্রসেসর নির্দেশিকা # দিয়ে শুরু হয়, এবং শুধুমাত্র সাদা-স্পেস অক্ষরগুলি একটি লাইনে একটি প্রিপ্রসেসর নির্দেশের আগে উপস্থিত হতে পারে। প্রিপ্রসেসর নির্দেশাবলী C++ স্টেটমেন্ট নয়, তাই সেমিকোলনে শেষ হয় না (;)।

আপনি ইতিমধ্যে সমস্ত উদাহরণে একটি #ইনক্লুড নির্দেশিকা দেখেছেন৷ এই ম্যাক্রোটি সোর্স ফাইলে একটি হেডার ফাইল অন্তর্ভুক্ত করতে ব্যবহৃত হয়।

#include, #define, #if, #else, #line ইত্যাদি C++ দ্বারা সমর্থিত প্রিপ্রসেসর নির্দেশিকা রয়েছে। আসুন আমরা গুরুত্বপূর্ণ নির্দেশাবলী দেখি −

#ডিফাইন প্রিপ্রসেসর

#define প্রিপ্রসেসর নির্দেশিকা প্রতীকী ধ্রুবক তৈরি করে। প্রতীকী ধ্রুবককে ম্যাক্রো বলা হয় এবং নির্দেশের সাধারণ রূপ হল −

#define macro-name replacement-text

উদাহরণ কোড

#include <iostream>
using namespace std;

#define PI 3.14159

int main () {
   cout << "Value of PI :" << PI << endl;
   return 0;
}

আউটপুট

Value of PI :3.14159

শর্তগত সংকলন

আপনার প্রোগ্রামের সোর্স কোডের সিলেক্টিভ অংশ কম্পাইল করতে ব্যবহার করা যেতে পারে এমন বেশ কিছু নির্দেশিকা রয়েছে। এই প্রক্রিয়াটিকে শর্তসাপেক্ষ সংকলন বলা হয়।

শর্তসাপেক্ষ প্রিপ্রসেসর গঠন অনেকটা 'if' নির্বাচন কাঠামোর মতো। নিম্নলিখিত প্রিপ্রসেসর কোড বিবেচনা করুন -

#ifndef NULL
   #define NULL 0
#endif
সংজ্ঞায়িত করুন

আপনি ডিবাগিং উদ্দেশ্যে একটি প্রোগ্রাম কম্পাইল করতে পারেন। আপনি নিম্নরূপ একটি একক ম্যাক্রো ব্যবহার করে ডিবাগিং চালু বা বন্ধ করতে পারেন -

#ifdef DEBUG
cerr <<"Variable x = " << x << endl;
#endif

এর ফলে cerr স্টেটমেন্ট প্রোগ্রামে কম্পাইল করা হয় যদি #ifdef DEBUG নির্দেশের আগে প্রতীকী ধ্রুবক DEBUG সংজ্ঞায়িত করা হয়। আপনি নিচের মত প্রোগ্রামের একটি অংশ মন্তব্য করতে #if 0 স্টেটমেন্ট ব্যবহার করতে পারেন −

#if 0
   code prevented from compiling
#endif

উদাহরণ কোড

#include <iostream>
using namespace std;
#define DEBUG

#define MIN(a,b) (((a)<(b)) ? a : b)

int main () {
   int i, j;
   i = 100;
   j = 30;

   #ifdef DEBUG
      cerr <<"Trace: Inside main function" << endl;
   #endif

   #if 0
      /* This is commented part */
      cout << MKSTR(HELLO C++) << endl;
   #endif

   cout <<"The minimum is " << MIN(i, j) << endl;

   #ifdef DEBUG
      cerr <<"Trace: Coming out of main function" << endl;
   #endif

   return 0;
}

আউটপুট

Trace: Inside main function
The minimum is 30
Trace: Coming out of main function

  1. C++ এ রেফারেন্স_র্যাপার

  2. C++ এ এনক্যাপসুলেশন

  3. C++ এ #define এবং const কীওয়ার্ডের মধ্যে পার্থক্য কী?

  4. C++ এ # ডিফাইন প্রিপ্রসেসর কী?