मेरे पास एक ऐसा मैक्रो लाइन नंबर और एक त्रुटि हैंडलर के लिए फ़ाइल नाम से गुजरता है:व्यवहार
#define SYSTEM_FAILURE (error_code, comment) \
System_Failure((error_code), (comment), __LINE__, __FILE__);
कैसे जब एक inlined समारोह के अंदर इस्तेमाल __LINE__
का समाधान हो जाएगा?
file.h:
inline int divide(int x, int y)
{
if (y == 0)
{
SYSTEM_FAILURE(ENUM_DIVIDE_BY_ZERO, "divide by zero error");
}
return x/y;
}
__LINE__
हेडर फाइल के भीतर लाइन नंबर, या जहां इनलाइन समारोह (यह मानते हुए संकलक एक स्रोत कोड में "पेस्ट" करता है) कहा जाता है स्रोत फ़ाइल की लाइन नंबर शामिल करेंगे?
यह कोशिश नहीं कर सकता क्योंकि व्यवहार कंपाइलरों पर भिन्न हो सकता है और मानक राज्य नहीं हो सकता है। –
डाउनवॉटर: डाउनवोट क्यों? प्रश्न एक एम्बेडेड सिस्टम में सी, इनलाइन फ़ंक्शंस और मैक्रोज़ का उपयोग करने से उत्पन्न होता है। –
@ थॉमस, अपने स्वयं के कंपाइलर पर इसका परीक्षण करें और अपने प्रश्न में परिणाम शामिल करें (इस प्रकार इसे 'मेरे प्रीप्रोसेसर ने ऐसा किया है, क्या यह मानक है?') डाउनवॉट्स में से कई को न्यूरर (और अभी भी कर सकते हैं) होगा। –