Tuesday 15 January 2013

c++ - Using __FILE__ and __LINE__ in a user-defined macro -


मेरे पास मैक्रो जैसे घोषित हैं:

  #define Ex (a) {throw मेरा अनुमान ((ए), __LINE__, __FILE__); }   

और मैं इसे इस तरह प्रयोग कर रहा हूं:

  यदि (bad_things_happen) ex (error_code)   

क्या इन मैक्रोज़ में #define कथन की रेखा और फाइल होती है, या अगर स्टेटमेंट? यदि वे #define कथन की लाइन और फ़ाइल रखते हैं, तो मेरा मैक्रो अनिवार्य रूप से बेकार है ...

नहीं, यह लाइन नंबर पर फैलता है, जहां आप इसका उपयोग करते हैं:

__ लाइन __ यह मैक्रो मौजूदा इनपुट लाइन नंबर तक फैलता है एक दशमलव पूर्णांक निरंतर का रूप जबकि हम इसे एक पूर्वनिर्धारित मैक्रो कहते हैं, यह एक बहुत अजीब मैक्रो है, क्योंकि इसकी परिभाषा है ???? स्रोत कोड की प्रत्येक नई पंक्ति में परिवर्तन।

फ़ाइल के लिए:

__ फ़ाइल __ इस मैक्रो का नाम वर्तमान इनपुट फ़ाइल, एक सी स्ट्रिंग स्थिर के रूप में यह वह रास्ता है जिसके द्वारा प्रीप्रोसेसर फ़ाइल खोलता है, छोटा नाम नहीं "# # #" में निर्दिष्ट है या इनपुट फ़ाइल नाम तर्क के रूप में। उदाहरण के लिए, "/usr/local/include/myheader.h" इस मैक्रो का एक संभावित विस्तार है।

No comments:

Post a Comment