यहां हम देखेंगे कि 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
__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