C प्रीप्रोसेसर और मैक्रोज़

इस ट्यूटोरियल में, आपको c प्रीप्रोसेसरों से परिचित कराया जाएगा, और आप उदाहरणों की मदद से #include, #define और सशर्त संकलन का उपयोग करना सीखेंगे।

C प्रीप्रोसेसर एक मैक्रो प्रीप्रोसेसर है (आपको मैक्रोज़ को परिभाषित करने की अनुमति देता है) जो आपके प्रोग्राम को संकलित करने से पहले बदल देता है। ये परिवर्तन हेडर फ़ाइल, मैक्रो विस्तार आदि का समावेश हो सकता है।

सभी प्रीप्रोसेसिंग निर्देश एक #प्रतीक से शुरू होते हैं । उदाहरण के लिए,

 #define PI 3.14

C प्रीप्रोसेसर के कुछ सामान्य उपयोग हैं:

जिसमें हैडर फाइलें शामिल हैं: #include

#includeपूर्वप्रक्रमक सी कार्यक्रमों के लिए हेडर फाइल शामिल करने के लिए प्रयोग किया जाता है। उदाहरण के लिए,

 #include 

यहाँ, stdio.hएक हेडर फ़ाइल है। #includeपूर्वप्रक्रमक निर्देश की सामग्री के साथ ऊपर लाइन की जगह stdio.hहेडर फाइल।

यही वजह है कि आप का उपयोग करने की आवश्यकता है #include इससे पहले कि आप जैसे कार्यों के लिए उपयोग कर सकते scanf()हैं और printf()

आप अपनी खुद की हेडर फ़ाइल भी बना सकते हैं जिसमें फ़ंक्शन डिक्लेरेशन होता है और इस प्रोग्राम में इस प्रीप्रोसेसर निर्देश का उपयोग करके शामिल कर सकते हैं।

 #include "my_header.h"

शीर्ष लेख फ़ाइलों का उपयोग करने के बारे में अधिक जानने के लिए इस पृष्ठ पर जाएं।

मैक्रोज़ #define का उपयोग कर रहे हैं

मैक्रो कोड का एक टुकड़ा है जिसे एक नाम दिया गया है। आप #defineप्रीप्रोसेसर निर्देश का उपयोग करके सी में एक मैक्रो को परिभाषित कर सकते हैं ।

यहाँ एक उदाहरण है।

 #define c 299792458 // speed of light

यहां, जब हम अपने प्रोग्राम में c का उपयोग करते हैं, तो इसे बदल दिया जाता है 299792458

उदाहरण 1: #define प्रीप्रोसेसर

 #include #define PI 3.1415 int main() ( float radius, area; printf("Enter the radius: "); scanf("%f", &radius); // Notice, the use of PI area = PI*radius*radius; printf("Area=%.2f",area); return 0; )

मैक्रों जैसा फंक्शन

आप मैक्रो को भी परिभाषित कर सकते हैं जो एक फ़ंक्शन कॉल की तरह काम करते हैं। इसे फ़ंक्शन-जैसे मैक्रोज़ के रूप में जाना जाता है। उदाहरण के लिए,

 #define circleArea(r) (3.1415*(r)*(r))

हर बार जब कार्यक्रम का सामना होता है circleArea(argument), तो इसे बदल दिया जाता है (3.1415*(argument)*(argument))

मान लीजिए, हमने 5 को एक तर्क के रूप में पारित किया, यह नीचे के रूप में फैलता है:

 circleArea(5) expands to (3.1415*5*5)

उदाहरण 2: #define प्रीप्रोसेसर का उपयोग करना

 #include #define PI 3.1415 #define circleArea(r) (PI*r*r) int main() ( float radius, area; printf("Enter the radius: "); scanf("%f", &radius); area = circleArea(radius); printf("Area = %.2f", area); return 0; )

मैक्रोज़ और #define प्रीप्रोसेसर के बारे में अधिक जानने के लिए इस पृष्ठ पर जाएँ।

सशर्त संकलन

सी प्रोग्रामिंग में, आप प्रीप्रोसेसर को निर्देश दे सकते हैं कि कोड के ब्लॉक को शामिल किया जाए या नहीं। ऐसा करने के लिए, सशर्त निर्देशों का उपयोग किया जा सकता है।

यह ifएक प्रमुख अंतर के साथ एक बयान के समान है ।

ifबयान अपने कार्यक्रम में कि क्या कोड का एक खंड या निष्पादित किया जाना चाहिए नहीं है, जबकि, सशर्त, शामिल करने के लिए उपयोग किया जाता है निष्पादन से पहले जाँच (या छोड़ दें) कोड का एक खंड के निष्पादन के समय के दौरान परीक्षण किया जाता है।

Uses of Conditional

  • use different code depending on the machine, operating system
  • compile same source file in two different programs
  • to exclude certain code from the program but to keep it as reference for future purpose

How to use conditional?

To use conditional, #ifdef, #if, #defined, #else and #elseif directives are used.

#ifdef Directive

 #ifdef MACRO // conditional codes #endif 

Here, the conditional codes are included in the program only if MACRO is defined.

#if, #elif and #else Directive

 #if expression // conditional codes #endif 

Here, expression is an expression of integer type (can be integers, characters, arithmetic expression, macros and so on).

The conditional codes are included in the program only if the expression is evaluated to a non-zero value.

The optional #else directive can be used with #if directive.

 #if expression conditional codes if expression is non-zero #else conditional if expression is 0 #endif 

आप अपने #if… #elseउपयोग के लिए नेस्टेड सशर्त भी जोड़ सकते हैं#elif

 #if expression // conditional codes if expression is non-zero #elif expression1 // conditional codes if expression is non-zero #elif expression2 // conditional codes if expression is non-zero #else // conditional if all expressions are 0 #endif 

#परिभाषित

विशेष ऑपरेटर #defined का उपयोग यह जांचने के लिए किया जाता है कि एक निश्चित मैक्रो परिभाषित है या नहीं। यह अक्सर #if निर्देश के साथ प्रयोग किया जाता है।

 #if defined BUFFER_SIZE && BUFFER_SIZE>= 2048 // codes 

पूर्वनिर्धारित मैक्रों

यहाँ C प्रोग्रामिंग में कुछ पूर्वनिर्धारित मैक्रो हैं।

मैक्रो मान
__DATE__ एक तार जिसमें वर्तमान तिथि है
__FILE__ एक स्ट्रिंग जिसमें फ़ाइल का नाम है
__LINE__ एक पूर्णांक वर्तमान लाइन संख्या का प्रतिनिधित्व करता है
__STDC__ यदि एएनएसआई मानक सी का अनुसरण करता है, तो मान एक गैर-पूर्णांक है
__TIME__ एक तार जिसमें वर्तमान तिथि है।

उदाहरण 3: __TIME__ का उपयोग करके वर्तमान समय प्राप्त करें

निम्नलिखित कार्यक्रम __TIME__मैक्रो का उपयोग करके वर्तमान समय को आउटपुट करता है ।

 #include int main() ( printf("Current time: %s",__TIME__); )

आउटपुट

 वर्तमान समय: 19:54:39

अनुशंसित रीडिंग

  • लाइन नियंत्रण
  • प्रगति
  • प्रीप्रोसेसर आउटपुट
  • अन्य निर्देश

दिलचस्प लेख...