Macro Substitution Directive

Macro Substitution Directive: ये एक ऐसा तरीका होता है जिसमें किसी Program का कोई Identifier किसी Predefined String से Replace होता है। Processor ये काम किसी #define Statement के Under में करता है। इस तरह के Statements को Macro Definition कहा जाता है। जैसे:

        #define START main(){

जब हम हमारे Program में इस प्रकार से किसी Macro को Define करते हैं तो Program में जहां भी Macro का नाम होता है Program Compile होने से पहले वहां पर Define की गई String Replace हो जाती है। इसे समझने के लिए निम्न Program देखिए-

// Program
   #include <stdio.h>
   #include <conio.h>

   #define START main()
   {
	#define PI 	  3.14

	START
	float Area, radius;
	printf("Enter Radius");
	scanf("%f", &radius);

	Area = PI * radius * radius;

	printf("Area of Radius is %f ", Area);
	getch();
   }

जब इस Program को Compile किया जाता है तब Program Compile होने से पहले सारे Macro Statements Expand होते हैं। यानी ये Program Compile होने से पहले निम्नानुसार Format में Convert होता है

// Program
//Expanded File : 
#include <stdio.h>
#include <conio.h>

#define START main(){
#define PI 	  3.14

main()
{
	float Area, radius;
	printf("Enter Radius");
	scanf("%f", &radius);

	Area = 3.14 * radius * radius;

	printf("Area of Radius is %f ", Area);
	getch();
}

Source Code के Expand होने पर START के स्थान पर main(){ व PI के स्थान पर 3.14 मान आ जाता है। मान आने के बाद Program Compile होता है। Macro Definition के बाद जो मान लिखा जाता है वह वास्तव में एक String होता है। यानी इस Program में PI का जो मान 3.14 लिखा गया है वह float Value नहीं है बल्कि एक String है। Macro Substitution के कई तरीके होते हैं:

Simple Macro Substitution

सामान्‍यतया इस तरह के Macro किसी Constant को Define करने के लिए लिखे जाते हैं। जैसे:

#define		COUNT		200
#define		TRUE		1
#define 	LAMBDA	        2.1
#define 	NAME		"Raghva"
#define		SIZE		sizeof(float)*6
#define		AREA		(3.1415926 * 12)

सामान्‍यतया सभी Macros को Capital Letters में लिखा जाता है ताकि हम जब भी किसी Macro को अपने Program में Use करें तो हमें पता रहे कि हम किसी Macro को Use कर रहे हैं। सामान्‍यतया सभी Mathematical Expressions को कोष्‍ठक में लिखना चाहिए।

कई बार हम Macro Define करते समय जो String लिखते हैं, वह String काफी लम्बी हो जाती है। इस स्थिति में यदि हम चाहें कि String को अगली स्पदम में लिख दें] तो हम ये काम Back Slash का प्रयोग करके कर सकते हैं। जैसे

        #define LONG_STRING         “This string is very long to fit in one \

                                                                line; so write it in next line.”

Buy this eBook for Complete Discussion about

Macros with Arguments

Nesting of Macros

Un-defining a Macro

__LINE__ and __FILE__ Predefined Identifiers of Compiler

Built – In Predefined Macros

# and ## Preprocessors

Preprocessor Directives in C
Conditional Compilation and File Inclusion Directives

C Programming Language in Hindi - BccFalna.com ये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook  C Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C Programming Language in Hindi | Page: 477 + 265 | Format: PDF

BUY NOW GET DEMO REVIEWS