এখানে আমরা দেখব কিভাবে প্রিপ্রসেসরগুলো C বা C++ এ কাজ করছে। আসুন দেখি প্রিপ্রসেসর কি।
প্রি-প্রসেসর হল নির্দেশিকা, যা প্রকৃত সংকলন শুরু হওয়ার আগে কম্পাইলারকে তথ্য প্রিপ্রসেস করার নির্দেশনা দেয়।
সমস্ত প্রিপ্রসেসর নির্দেশিকা # দিয়ে শুরু হয় এবং একটি লাইনে একটি প্রিপ্রসেসর নির্দেশের আগে শুধুমাত্র সাদা-স্পেস অক্ষরগুলি উপস্থিত হতে পারে। প্রিপ্রসেসর নির্দেশাবলী 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