प्रीप्रोसेसर निर्देश हैं, जो संकलक को वास्तविक संकलन शुरू होने से पहले जानकारी को प्रीप्रोसेस करने के निर्देश देते हैं।
pसभी प्रीप्रोसेसर निर्देश # से शुरू होते हैं, और लाइन पर प्रीप्रोसेसर निर्देश से पहले केवल व्हाइट-स्पेस वर्ण दिखाई दे सकते हैं। प्रीप्रोसेसर निर्देश सी ++ कथन नहीं हैं, इसलिए वे अर्धविराम (;) में समाप्त नहीं होते हैं।
आप सभी उदाहरणों में #include निर्देश पहले ही देख चुके हैं। इस मैक्रो का उपयोग हेडर फ़ाइल को स्रोत फ़ाइल में शामिल करने के लिए किया जाता है।
सी ++ द्वारा समर्थित कई प्रीप्रोसेसर निर्देश हैं जैसे #include, #define, #if, #else, #line, आदि। आइए देखें महत्वपूर्ण निर्देश -
#डिफाइन प्रीप्रोसेसर
#define प्रीप्रोसेसर निर्देश प्रतीकात्मक स्थिरांक बनाता है। प्रतीकात्मक स्थिरांक को मैक्रो . कहा जाता है और निर्देश का सामान्य रूप है -
#define macro-name replacement-text
उदाहरण कोड
#include <iostream> using namespace std; #define PI 3.14159 int main () { cout << "Value of PI :" << PI << endl; return 0; }
आउटपुट
Value of PI :3.14159
सशर्त संकलन
कई निर्देश हैं, जिनका उपयोग आपके प्रोग्राम के स्रोत कोड के चुनिंदा भागों को संकलित करने के लिए किया जा सकता है। इस प्रक्रिया को सशर्त संकलन कहा जाता है।
सशर्त प्रीप्रोसेसर निर्माण 'अगर' चयन संरचना की तरह है। निम्नलिखित प्रीप्रोसेसर कोड पर विचार करें -
#ifndef NULL #define NULL 0 #endif
आप डिबगिंग उद्देश्य के लिए एक प्रोग्राम संकलित कर सकते हैं। आप निम्न प्रकार से एकल मैक्रो का उपयोग करके डिबगिंग को चालू या बंद भी कर सकते हैं -
#ifdef DEBUG cerr <<"Variable x = " << x << endl; #endif
यह सीर स्टेटमेंट को प्रोग्राम में संकलित करने का कारण बनता है यदि प्रतीकात्मक स्थिर DEBUG को निर्देश #ifdef DEBUG से पहले परिभाषित किया गया है। कार्यक्रम के एक हिस्से पर टिप्पणी करने के लिए आप #if 0 कथन का उपयोग इस प्रकार कर सकते हैं -
#if 0 code prevented from compiling #endif
उदाहरण कोड
#include <iostream> using namespace std; #define DEBUG #define MIN(a,b) (((a)<(b)) ? a : b) int main () { int i, j; i = 100; j = 30; #ifdef DEBUG cerr <<"Trace: Inside main function" << endl; #endif #if 0 /* This is commented part */ cout << MKSTR(HELLO C++) << endl; #endif cout <<"The minimum is " << MIN(i, j) << endl; #ifdef DEBUG cerr <<"Trace: Coming out of main function" << endl; #endif return 0; }
आउटपुट
Trace: Inside main function The minimum is 30 Trace: Coming out of main function