इस ट्यूटोरियल में, आपको 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
अनुशंसित रीडिंग
- लाइन नियंत्रण
- प्रगति
- प्रीप्रोसेसर आउटपुट
- अन्य निर्देश