Directives क्या है ?
डायरेक्टिव क्या होता है आज के इस चैप्टर में हम डायरेक्ट क्या होते हैं इस बारे में पढ़ने वाले तो आप हमारे इस पोस्ट में अंत तक बनी रहे और डायरेक्ट इसके बारे में जानते रहिए ।
हम जब भी सोर्स प्रोग्राम में सोर्स कोड लिखते हैं और इसमें जो प्रोसेस होता है या हमारी सोर्स फाइल कंपाइल होती है directives होती है, लेकिन C प्रोग्राम में प्रोसेसर की कुछ व्यवस्थाएं की गई है जिसके कारण प्रोसेसर के रूप में हम कोई भी सोर्स फाइल में जो भी statement लिखते है, वे compilation से पहले प्रोसेस होती है इन्ही स्टेटमेंट को directives कहते हैं।
कुछ directives इस प्रकार हैं:-
#error
#line
#ifndef
#ifdef
#error-
Error डायरेक्टिव्स का यूज़ कंपाइलर के द्वारा एरर मैसेज को डिस्प्ले करने के लिए इस डायरेक्टिव का यूज किया जाता है जिससे कंपाइलेशन के दौरान किसी कंडीशन के सेटिस्फाइड ना होने की स्थिति में एरर मैसेज डिस्प्ले करने के लिए करते हैं इस directive के साथ दिया जाने वाला मैसेज डबल कोटेशन में नहीं लिखा जाता है , जैसे ही प्रोग्राम कंट्रोल# error डायरेक्टिव्स को एक्सेप्ट करता है कंपाइलेशन की प्रोसेस यहां पर रुक जाती है इसका यूज मुख्यतः डि- बगिंग के लिए करते है। इसको फॉर्मेट नीचे आप देख सकते हैं: -
Syntex:- #error massage
#line-
यह डायरेक्टिव्स पहले से परिभाषित होते हैं यह _LINE_ तथा _FILE_ macro के साथ पहले से ही परिभाषित होते हैं इसमें Identifier compile हो रही फाइल लाइन का नंबर रिटर्न करता है तथा _FILE_ कंपाइल हो रही फाइल के नाम को रिटर्न करती है।
#ifndef-
इस डायरेक्टिव्स से साफ पता चलता है कि यह डायरेक्टिव किस यूज़ के लिए यूज़ किया जाता है,#ifndef का अर्थ if not define होता है और इस अर्थ का मतलब किसी कोर्ट के डिफाइन ना होने की स्थिति में की जाने वाली प्रक्रिया को निर्धारित करने के लिए इस डायरेक्टिव्स का यूज हमारे प्रोग्राम में करते हैं इसे एक उदाहरण से समझ सकते हैं जो नीचे इस प्रकार से है: -
#ifndef AVG
printf ("AVG will not work");
#endif
यहां पर अगर हमारे प्रोग्राम में AVG माइक्रो डिफाइन नहीं है तो उपरोक्त मैसेज डिस्प्ले होगा। यह डायरेक्टिव्स #ifdef के विपरीत अर्थ को बताता है, जैसा कि #ifdef को आगे देख सकते हैं और अंतर समझ सकते हैं।
#ifdef-
इस डायरेक्टिव का यूज़ #define द्वारा किसी कोड के define होने की स्थिति में की जाने वाली फंक्शनैलिटी को परिभाषित करने के लिए करते हैं इससे हम एक फॉर्मेट से समझ सकते हैं।
Syntex:
#ifdef MACRO_NAME
Statement 1
Statement 2
#endif
यहां पर अगर दिया गया MACRO_NAME डिफाइन किया गया है तो #ifdef के अंतर्गत दिए गए स्टेटमेंटस execute होंगे अन्यथा नहीं।
Comments
Post a Comment