सी या सी ++ में, हमें (#) प्रतीक के साथ अलग-अलग रेखाएं मिलती हैं। इन्हें प्रीप्रोसेसिंग निर्देश कहा जाता है। कोड को संकलित करने से पहले इन पंक्तियों को प्रीप्रोसेसिंग चरण में संसाधित किया जाता है। यहां हम तीन अलग-अलग प्रकार के प्रीप्रोसेसिंग निर्देश देखेंगे। ये हैं -
- सशर्त संकलन
- लाइन नियंत्रण
- त्रुटि निर्देश
कभी-कभी हम अपने प्रोग्राम में कुछ मैक्रो को परिभाषित करते हैं। सशर्त संकलन निर्देशों का उपयोग करना। हम जांच सकते हैं कि मैक्रो परिभाषित है या नहीं। हम उन्हें नियंत्रित भी कर सकते हैं। तो अगर एक मैक्रो परिभाषित है, तो कुछ कार्य करें, अन्यथा कोई अन्य कार्य उस तरह करें।
सशर्त संकलन निर्देश #ifdef-#elif-#else-#endif जैसे हैं। प्रत्येक #ifdef ब्लॉक #endif के साथ समाप्त होना चाहिए। #elif या #else वैकल्पिक हैं।
उदाहरण
#include <iostream> #define MY_MACRO 10 using namespace std; int main() { #ifdef MACRO cout << "MACRO is defined" << endl; #elif MY_MACRO cout << "MY_MACRO is defined, value is: " << MY_MACRO; #endif }
आउटपुट
MY_MACRO is defined, value is: 10
लाइन नियंत्रण निर्देश #line टाइप करके प्रयोग किया जाता है। कभी-कभी हमें पसंदीदा लाइन नंबर के साथ कुछ त्रुटि मिलती है। हम इस निर्देश का उपयोग करके लाइन नंबर को अपडेट कर सकते हैं। अगर हम इसे रख दें और करंट लाइन को 200 से बदल दें, तो उसके बाद लाइन्स 201 से आगे बढ़ेंगी।
उदाहरण
#include <iostream> using namespace std; int main() { cout<< "Current line is: " << __LINE__ << endl; #line 200 cout << "Hello" << endl; cout << "World" << endl; cout<< "Current line is: " << __LINE__ << endl; }
आउटपुट
Current line is: 5 Hello World Current line is: 202
त्रुटि निर्देश का उपयोग संकलन से पहले त्रुटि दिखाने के लिए किया जाता है। मान लीजिए कि एक मैक्रो को परिभाषित किया जाना चाहिए लेकिन अगर वह परिभाषित नहीं है, तो हम एक त्रुटि संदेश दिखा सकते हैं। यह #error का उपयोग करके किया जा सकता है।
उदाहरण
#include <iostream> using namespace std; int main() { #ifdef MY_MACRO cout << "MY_MACRO is defined, value is: " << MY_MACRO; #else #error MY_MACRO should be defined #endif }
आउटपुट
#error MY_MACRO should be defined