आइडेंटिफायर प्रोग्रामिंग में किसी एंटिटी को दिया गया नाम है ताकि उसे प्रोग्राम में पहचाना जा सके।
आमतौर पर, आइडेंटिफायर्स प्रोग्रामर द्वारा कुशल कार्य के लिए बनाए जाते हैं लेकिन कुछ प्रीडिफाइंड आइडेंटिफायर्स होते हैं जो प्रोग्रामिंग में इनबिल्ट होते हैं। उदाहरण के लिए, cout, cin, आदि।
यहां, हम C प्रोग्रामिंग भाषा के इन प्रीडिफाइंड आइडेंटिफायर्स में से एक को देखेंगे जो __func__ है।
__func__ की औपचारिक परिभाषा है -
"आइडेंटिफायर __func__ को ट्रांसलेटर द्वारा निहित रूप से घोषित किया जाएगा जैसे कि, प्रत्येक फंक्शन डेफिनिशन के ओपनिंग ब्रेस के तुरंत बाद, डिक्लेरेशन
static const char __func__[] = "function-name";
प्रकट हुआ, जहां function-name लेक्सिकली-एनक्लोजिंग फंक्शन का नाम है।"
C प्रोग्राम __func__ एक कंपाइलर-जनरेटेड आइडेंटिफायर है जो फंक्शन नाम का उपयोग करके फंक्शन की पहचान करने के लिए बनाया गया है।
आइए कुछ कोड उदाहरण देखें ताकि अवधारणा अधिक स्पष्ट हो जाए,
उदाहरण
#includevoid function1 (void){ printf ("%s\n", __func__); } void function2 (void){ printf ("%s\n", __func__); function1 (); } int main (){ function2 (); return 0; }
आउटपुट
function2 function1
व्याख्या - यहां, हमने __func__ मेथड का उपयोग उन फंक्शन्स के नाम लौटाने के लिए किया है जिन्हें कॉल किया गया है। आइडेंटिफायर उस फंक्शन का नाम लौटाता है जिसमें इसे इनवोक किया गया है। दोनों प्रिंट स्टेटमेंट्स ने अपने स्वयं के मेथड रेफरेंस के लिए __func__ को कॉल किया।
यह आइडेंटिफायर main मेथड पर भी काम करता है। उदाहरण,
उदाहरण
#includeint main (){ printf ("%s\n", __func__); return 0; }
आउटपुट
main
लेकिन इसे ओवरराइट नहीं किया जा सकता यानी __func__ केवल फंक्शन नामों के लिए आरक्षित है। इसे कुछ और स्टोर करने के लिए उपयोग करने से एरर आएगा।
आइए देखें
उदाहरण
#includeint __func__ = 123; int main (){ printf ("%s\n", __func__); return 0; }
आउटपुट
error
C प्रोग्रामिंग भाषा में अन्य समान फंक्शन्स भी हैं जो पहचान का समान कार्य करते हैं। कुछ हैं
__File__ - वर्तमान फाइल का नाम लौटाता है।
__LINE__ - वर्तमान लाइन नंबर लौटाता है।
आइए कार्यान्वयन दिखाने के लिए एक कोड देखें
उदाहरण
#includevoid function1(){ printf("The function: %s is in line: %d of the file :%s\n", __func__,__LINE__,__FILE__); } int main(){ function1(); return 0; }
आउटपुट
The function: function1 is in line: 3 of the file :main.c
व्याख्या - ये कुछ सामान्य फंक्शन्स हैं जो उपयोगी हो सकते हैं क्योंकि हमने __func__,__LINE__,__FILE__ आइडेंटिफायर्स का उपयोग करके वर्तमान में इनवोक किए गए फंक्शन, कोड की लाइन और फाइलनाम के बारे में जानकारी एकत्र की है।