2013-02-23 5 views

उत्तर

11
if (debug) 
    DoWork(); 
else 
    DoAnotherWork(); 

उपरोक्त कोड संकलित किया जाएगा और स्थिति रनटाइम पर जांच की जाएगी।

#if 
    DoWork(); 
#else 
    DoAnotherWork(); 
#endif 

ये विवरण संकलित समय पर चेक किए जाएंगे।

तो यदि #if स्थिति सत्य है, DoWork(); संकलित किया जाएगा और अन्यथा DoAnotherWork(); संकलित किया जाएगा। जहां पिछले उदाहरण के रूप में यदि कथन सहित सभी कोड संकलित किया जाएगा।

कृपया upvotes की मात्रा के बावजूद प्रीप्रोसेसर निर्देशों

Preprocessor Directives

+0

आप लॉजिकल डायरेक्टिव्स के लिए एक लिंक भी जोड़ सकते हैं –

9

पहले का उपयोग कर के बीच मतभेद Preprocessor Directive और दूसरा है Logical statement

+2

पर इस पढ़ा है, यह सबसे अच्छा जवाब नहीं है। लिंक के बिना, आपका उत्तर दोनों अवधारणाओं के अर्थ की व्याख्या नहीं करता है। भविष्य में संदर्भ के लिए आपका उत्तर अकेले खड़ा होना चाहिए। कृपया अपने उत्तर का विस्तार करने पर विचार करें ताकि लिंक उत्तर को पूरक न केवल – psubsee2003

+1

प्रदान करें, मुझे लगता है कि यह काफी अच्छी तरह से खड़ा है। यह एक वाक्य में एक स्पष्टीकरण है और इसे समझने के लिए लिंक पर क्लिक करने की कोई आवश्यकता नहीं है। – Fionnuala

6

पहला संस्करण प्रीप्रोसेसर निर्देशों का उपयोग करता है। यह केवल कुछ बयानों को संकलित करने के लिए संकलक के लिए निर्देश हैं। परिणामी निष्पादन योग्य फ़ाइल में केवल संकलित बयान शामिल होंगे। इसलिए शर्त ऐसी चीज होनी चाहिए जिसका संकलन समय पर मूल्यांकन किया जा सके।

दूसरा संस्करण रन टाइम पर मूल्यांकन किया जाता है। संकलक if स्थिति का मूल्यांकन करने के लिए सभी बयानों के साथ-साथ तर्क को संकलित करेगा। सभी कथन परिणामस्वरूप निष्पादन योग्य फ़ाइल में शामिल किए जाएंगे। और वास्तव में निष्पादित कौन सा कथन निर्धारित किया जाएगा जब आपका कोड चलता है।

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