Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी++ प्रीप्रोसेसर


प्रीप्रोसेसर निर्देश हैं, जो संकलक को वास्तविक संकलन शुरू होने से पहले जानकारी को प्रीप्रोसेस करने के निर्देश देते हैं।

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

  1. सी++ में इनकैप्सुलेशन

    Encapsulation डेटा और विधियों को एक साथ लाता है जो डेटा को एक घटक में हेरफेर करता है और उन्हें बाहरी हस्तक्षेप से बचाता है। संक्षेप में, एनकैप्सुलेशन में डेटा के साथ-साथ डेटा का उपयोग करने वाले कार्यों को बंडल करना शामिल है। डेटा इनकैप्सुलेशन डेटा छिपाने की बहुत महत्वपूर्ण अवधारणा की ओर ले जाता है।

  1. C++ में #define और const कीवर्ड में क्या अंतर है?

    #define निर्देश एक प्रीप्रोसेसर निर्देश है; प्रीप्रोसेसर उन मैक्रोज़ को उनके शरीर से बदल देता है इससे पहले कि कंपाइलर इसे देखे। इसे एक स्वचालित खोज के रूप में सोचें और अपने स्रोत कोड की जगह लें। एक const चर घोषणा भाषा में एक वास्तविक चर घोषित करती है, जिसे आप एक वास्तविक चर की तरह उपयोग कर सकते हैं:

  1. C++ में #define प्रीप्रोसेसर क्या है?

    #define एक मैक्रो बनाता है, जो एक टोकन स्ट्रिंग के साथ एक पहचानकर्ता या पैरामीटरयुक्त पहचानकर्ता का जुड़ाव है। मैक्रो परिभाषित होने के बाद, कंपाइलर स्रोत फ़ाइल में पहचानकर्ता की प्रत्येक घटना के लिए टोकन स्ट्रिंग को प्रतिस्थापित कर सकता है। #define identifier token-string इस प्रकार प्रीप्रोसेसर का उ