এখানে আমরা দেখব সি++-এ __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)
int main() {
LOG("This is a dummy error");
}
আউটপুট
[D:\Misc C and C++ Questions\test_prog.cpp] This is a dummy error
__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)
int 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");
}
int main() {
TestFunction();
LOG("This is a dummy error");
}
আউটপুট
[TestFunction] Send from Function [main] This is a dummy error