__FILE__
और __LINE__
मैक्रो __FILE__ कैसे लिख सकता हूँ सी पूर्व प्रोसेसर में निर्मित होते हैं, और अक्सर फ़ाइल नाम और लाइन नंबर के साथ डिबग आउटपुट मुद्रण के लिए उपयोग किया जाता है। मुझे कुछ इसी तरह की ज़रूरत है, लेकिन पथ के अंत में निर्देशिका के नाम के साथ। उदाहरण के लिए यदि मेरा कोड इस प्रकार है: /home/davidc/कुछ/पथ/से/कुछ/कोड/foo/bar मुझे एक मैक्रो की आवश्यकता है जो मुझे "बार" देगी, अगर कोड/home/davidc/कुछ/पथ/से/कुछ/कोड/foo/मधुमक्खी तो मुझे इसे "मधुमक्खी" देने के लिए इसकी ज़रूरत है।मैं एक cpp __DIR__ मैक्रो, समान
कोई विचार? (बीटीडब्ल्यू, यह एक सी ++ आवेदन के लिए है)।
अद्यतन: स्पष्ट होने के लिए, मैं एक मैक्रो के बाद हूं जो मुझे संकलन-समय पर निर्देशिका नाम वाली एक स्ट्रिंग देगा, मैं रनटाइम पर कोई स्ट्रिंग-प्रोसेसिंग नहीं करना चाहता हूं।
डी 'ओ पर जी ++ का उपयोग कर रहा हूं, आपने मुझे एक मिनट तक हराया - मैं काफी सटीक वही कर रहा था। यदि अंतिम निर्देशिका में रिक्त स्थान हैं, तो यह काफी काम नहीं करता है, लेकिन अन्यथा यह एक सही समाधान है। और मेरा विश्वास करो - मैंने पहले मेकफ़ाइल में * दूर * बदतर monstrosities देखा है। –
@Adam: मुझे आज रात शून्य से शुरू होने वाले संस्करण संख्याओं को प्राप्त करने के लिए कुछ _fixups_ करना पड़ा। 07.64 से 08.01 तक जाकर हमें बहुत अनावश्यक दुःख हुआ। –
मैं सीएमके का उपयोग कर रहा हूं, इसलिए मुझे ऐसा करने में सक्षम होना चाहिए। धन्यवाद! –