কম্পিউটার

C/C++ প্রিপ্রসেসর নির্দেশিকা


C বা C++ এ, আমরা (#) চিহ্ন সহ বিভিন্ন লাইন খুঁজে পেয়েছি। এগুলিকে প্রিপ্রসেসিং নির্দেশিকা বলা হয়। কোড কম্পাইল করার আগে এই লাইনগুলি প্রিপ্রসেসিং পর্যায়ে প্রক্রিয়া করা হয়। এখানে আমরা তিনটি ভিন্ন ধরনের প্রিপ্রসেসিং নির্দেশিকা দেখতে পাব। এগুলো হল -

  • শর্তগত সংকলন
  • লাইন নিয়ন্ত্রণ
  • ত্রুটির নির্দেশিকা

কখনও কখনও আমরা আমাদের প্রোগ্রামে কিছু ম্যাক্রো সংজ্ঞায়িত করি। শর্তসাপেক্ষ সংকলন নির্দেশাবলী ব্যবহার করে। আমরা ম্যাক্রো সংজ্ঞায়িত কিনা তা পরীক্ষা করতে পারি। আমরা তাদের নিয়ন্ত্রণও করতে পারি। তাই যদি একটি ম্যাক্রো সংজ্ঞায়িত করা হয়, তাহলে কিছু কাজ করুন, অন্যথায় অন্য কিছু কাজ করুন।

শর্তসাপেক্ষ সংকলন নির্দেশিকাগুলি হল #ifdef-#elif-#else-#endif। প্রতিটি #ifdef ব্লক অবশ্যই #endif দিয়ে শেষ করতে হবে। #elif বা #else ঐচ্ছিক।

উদাহরণ

#include <iostream>
#define MY_MACRO 10
using namespace std;
int main() {
   #ifdef MACRO
   cout << "MACRO is defined" << endl;
   #elif MY_MACRO
   cout << "MY_MACRO is defined, value is: " << MY_MACRO;
   #endif
}

আউটপুট

MY_MACRO is defined, value is: 10

লাইন নিয়ন্ত্রণ নির্দেশিকা # লাইন টাইপ করে ব্যবহার করা হয়। কখনও কখনও আমরা পছন্দের লাইন নম্বরের সাথে কিছু ত্রুটি পাই। এই নির্দেশিকা ব্যবহার করে আমরা লাইন নম্বর আপডেট করতে পারি। যদি আমরা এটি স্থাপন করি এবং বর্তমান লাইনটিকে 200 হিসাবে পরিবর্তন করি, তাহলে এর পরে লাইনগুলি 201 থেকে সরে যাবে।

উদাহরণ

#include <iostream>
using namespace std;
int main() {
   cout<< "Current line is: " << __LINE__ << endl;
   #line 200
   cout << "Hello" << endl;
   cout << "World" << endl;
   cout<< "Current line is: " << __LINE__ << endl;
}

আউটপুট

Current line is: 5
Hello
World
Current line is: 202

কম্পাইল করার আগে ত্রুটি দেখানোর জন্য ত্রুটি নির্দেশিকা ব্যবহার করা হয়। ধরুন একটি ম্যাক্রো সংজ্ঞায়িত করা উচিত কিন্তু যদি এটি সংজ্ঞায়িত না হয়, আমরা একটি ত্রুটি বার্তা দেখাতে পারি। এটি #ত্রুটি ব্যবহার করে করা যেতে পারে।

উদাহরণ

#include <iostream>
using namespace std;
int main() {
   #ifdef MY_MACRO
   cout << "MY_MACRO is defined, value is: " << MY_MACRO;
   #else
   #error MY_MACRO should be defined
   #endif
}

আউটপুট

#error MY_MACRO should be defined

  1. C/C++ এ putwchar() ফাংশন

  2. C/C++ এ memcpy()

  3. C/C++ এ AA গাছ?

  4. কিভাবে একটি প্রিপ্রসেসর C/C++ এ কাজ করে?