क्या स्रोत फ़ाइल के भीतर लाइनों को गिनने के लिए C / C ++ प्रीप्रोसेसर का उपयोग करना संभव है, किसी मैक्रो या किसी प्रकार के संकलन-समय-उपलब्ध मूल्य में? जैसे मैं प्रतिस्थापित कर सकता हूं MAGIC1, MAGIC2और MAGIC3निम्नलिखित में, और उपयोग करते समय मूल्य 4 किसी भी तरह प्राप्त कर सकता हूं MAGIC3?
MAGIC1 // can be placed wherever you like before the relevant
// lines - either right before them, or in global scope etc.
foo(); MAGIC2
bar(); MAGIC2
baz(); MAGIC2
quux(); MAGIC2
// ... possibly a bunch of code here; not guaranteed to be in same scope ...
MAGIC3
टिप्पणियाँ:
- प्रीप्रोसेसर की क्षमताओं के लिए कम्पाइलर-विशिष्ट एक्सटेंशन स्वीकार्य हैं लेकिन अवांछनीय हैं।
- यदि यह C ++ के निर्माण के विपरीत C ++ की मदद से ही संभव है, तो यह स्वीकार्य भी है, लेकिन अवांछनीय (यानी मैं ऐसा कुछ चाहूंगा जो C के लिए काम करेगा)।
- जाहिर है यह कुछ बाहरी प्रोसेसर स्क्रिप्ट के माध्यम से स्रोत फ़ाइल को चलाकर किया जा सकता है, लेकिन यह वह नहीं है जो मैं पूछ रहा हूं।
__COUNTER__और / या BOOST_PP_COUNTER?
int arr[MAGIC4]और मेरे कोड के कुछ पहले से गिने हुए खंड में लाइनों की संख्या प्राप्त करें।
__LINE__कि वर्तमान लाइन संख्या का प्रतिनिधित्व करता है