কম্পিউটার

C++ এ __FILE__, __LINE__, এবং __FUNCTION__ কি


এখানে আমরা C++ এ __FILE, __LINE__ এবং __FUNCTION__ কি কি তা দেখব।

__FILE__

বর্তমান ফাইলের পাথ পেতে এই ম্যাক্রো ব্যবহার করা হয়। যখন আমরা লগ ফাইল তৈরি করতে চাই তখন এটি কার্যকর। নিম্নলিখিত কোডটি এর কার্যকারিতা ব্যাখ্যা করবে।

উদাহরণ

#include<iostream>
using namespace std;
int errorLog (const char* file, const std::string& msg){
   cerr << "[" << file << "] " << msg << endl;
}
#define LOG( msg ) errorLog( __FILE__, msg )
main() {
   LOG("This is a dummy error");
}

আউটপুট

[D:\Misc C and C++ Questions\test_prog.cpp] This is a dummy error

The __LINE__

এই ম্যাক্রো সোর্স ফাইলে বর্তমান লাইন নম্বর খুঁজে পেতে পারে। এই লাইন সংখ্যা একটি পূর্ণসংখ্যা মান. যখন লগ স্টেটমেন্ট তৈরি হয় তখন __LINE__ কিছু কার্যকর ভূমিকা পালন করে। ধারণা পেতে নিচের উদাহরণটি দেখুন।>

উদাহরণ

#include<iostream>
using namespace std;
int errorLog (int line, const std::string& msg){
   cerr << "[" << line << "] " << msg << endl;
}
#define LOG( msg ) errorLog( __LINE__, msg )
main() {
   LOG("This is a dummy error");
}

আউটপুট

[12] This is a dummy error

__FUNCTION__

এই ম্যাক্রো বর্তমান ফাংশন ফিরিয়ে দিতে পারে। যখন লগ স্টেটমেন্ট তৈরি হয় তখন __FUNCTION__ কিছু কার্যকর ভূমিকা পালন করে। ধারণা পেতে নিম্নলিখিত উদাহরণ দেখুন।

long double rintl(long double argument)

উদাহরণ

#include<iostream>
using namespace std;
int errorLog (const char* func, const std::string& msg){
   cerr << "[" << func << "] " << msg << endl;
}
#define LOG( msg ) errorLog( __FUNCTION__, msg )
void TestFunction(){
   LOG("Send from Function");
}
main() {
   TestFunction();
   LOG("This is a dummy error");
}

আউটপুট

[TestFunction] Send from Function
[main] This is a dummy error

  1. C++ এ গুনগত অপারেটর কি?

  2. C++ এ ভেরিয়েবল এবং ভেরিয়েবলের ধরন কি কি?

  3. C++ এ cin, cout এবং cerr স্ট্রীম কি কি?

  4. C++ এ স্বাক্ষরিত এবং স্বাক্ষরবিহীন কীওয়ার্ড কী?