2010-08-11 15 views
7

क्या C++ में वर्तमान फ़ंक्शन नाम प्राप्त करने का कोई तरीका है? मैं कुछ फ़ंक्शन कॉल ऑर्डर ट्रैक करना चाहता हूं। क्या __FILE__ या __LINE__ जैसी कोई चीज़ है?सी ++ वर्तमान फ़ंक्शन नाम स्ट्रिंग

धन्यवाद!

उत्तर

11

उपयोग

__FUNCTION__ 
//or 
__PRETTY_FUNCTION__ 
+0

धन्यवाद, यह काम करता है :) यह उन कार्यों को प्रस्तुत करने के लिए बहुत उपयोगी है जिन्हें आप ब्रेकपॉइंट्स के साथ अच्छा डीबग नहीं कर सकते – Felics

+0

क्या यह मैक्रो जीसीसी के अलावा अन्य कंपाइलर्स के साथ संगत है? – Sampath

+1

@Sampath, क्योंकि यह मानक नहीं है, इसकी कोई गारंटी नहीं है, लेकिन यह उदाहरण के लिए माइक्रोसॉफ्ट कंपाइलर के लिए msdn दस्तावेज़ों में सूचीबद्ध है। तो मुझे लगता है कि यह ज्यादातर कंपाइलरों में समर्थित है। हालांकि __func__ का उपयोग करना बेहतर हो सकता है क्योंकि इस मैक्रो को मानक में परिभाषित किया गया है और सार्वभौमिक रूप से समर्थित होना चाहिए। – Vladimir

10

या यदि आप जल्द ही होने वाली है (sic) C++ 0x मानक के साथ संगत होना चाहता हूँ,, __func__ का उपयोग अपने संकलक यह (जीसीसी करता है) का समर्थन करता है, जो होगा पोर्टेबल हो।

+2

या, आप _current_ मानक के साथ संगत होना चाहते हैं: '#ifdef MYFN',' #undef MYFN', '# endif',' _FFINE MYFN nameofmyfunction' आपके द्वारा लिखे गए प्रत्येक कार्य से पहले :-) – paxdiablo

संबंधित मुद्दे