কম্পিউটার টিউটোরিয়াল

সি++-এ __FILE__, __LINE__, এবং __FUNCTION__ কী?


এখানে আমরা দেখব সি++-এ __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
  1. C++-এ মাল্টিপ্লিকেটিভ অপারেটর (Multiplicative Operators) কী?

  2. C++-এ ভেরিয়েবল এবং ভেরিয়েবলের টাইপগুলো কী?

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

  4. C++-এ signed এবং unsigned কিওয়ার্ড