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