I C-programmering, #Definere er et præprocessordirektiv, der bruges til at definere makroer. Makroerne er identifikatorerne defineret af #define, som erstattes af deres værdi før kompilering. Vi kan definere konstanter og funktioner som makroer ved hjælp af #define. Generikken i C er også implementeret ved hjælp af #define preprocessor-direktivet sammen med _Generisk.
char til int
Syntaks for C #define
Syntaksen for #define præprocessor direktiv i C er:
Til definition af konstanter
#define MACRO_NAME value>
Til definition af udtryk
#define MACRO_NAME (expression within brackets)>
Til definition af udtryk med parametre
Argumenter, der sendes i makroerne, kan bruges i udtrykket.
#define MACRO_NAME( ARG1, ARG2 ,..) (expression within brackets)>
Der er et par flere måder, hvorpå vi kan definere makroer. For at vide mere, se denne artikel - Makroer og dens typer i C
Eksempler på C #define
Eksempel 1:
I eksemplet nedenfor har vi defineret en makro 'PI' og tildelt den en konstant værdi, som vi senere i programmet kan bruge til at beregne arealet af en cirkel.
C
// C Program to illustrate how to use #define to declare> // constants> #include> > // Defining macros with constant value> #define PI 3.14159265359> > int> main()> {> > >int> radius = 21;> >int> area;> > >// Using macros to calculate area of circle> >area = PI * radius * radius;> > >printf>(>'Area of Circle of radius %d: %d'>, radius, area);> > >return> 0;> }> |
>
>Produktion
Area of Circle of radius 21: 1385>
Eksempel 2:
I eksemplet nedenfor har vi defineret en makro 'PI' og tildelt det et udtryk, og den værdi af udtrykket bruges i programmet vha 'PI'.
C
// C Program to illustrate the defining of expression using> // #define> #include> > // Defining macros with expression> #define PI (22 / 7)> > int> main()> {> > >int> radius = 7;> >int> area;> > >// Using macros to calculate area of circle> >area = PI * radius * radius;> > >printf>(>'Area of Circle of radius %d: %d'>, radius, area);> > >return> 0;> }> |
>
>Produktion
Area of Circle of radius 7: 147>
Eksempel 3:
I eksemplet nedenfor har vi defineret to makroer CIRCLE_AREA og SQUARE_AREA med en parameter, og den parameter bruges i udtrykket til at beregne arealet af henholdsvis cirkel og kvadrat .
C
// C Program to define the function like macros using> // #define> #include> > // Defining parameterized macros with expression> #define CIRCLE_AREA(r) (3.14 * r * r)> #define SQUARE_AREA(s) (s * s)> > int> main()> {> > >int> radius = 21;> >int> side = 5;> >int> area;> > >// Using macros to calculate areas by> >// passing argument> >area = CIRCLE_AREA(radius);> >printf>(>'Area of Circle of radius %d: %d
'>, radius,> >area);> > >area = SQUARE_AREA(side);> >printf>(>'Area of square of side %d: %d'>, side, area);> > >return> 0;> }> |
>
>Produktion
Area of Circle of radius 21: 1384 Area of square of side 5: 25>
Vigtige pointer
- Makroer erklæret ved hjælp af #define bruges til at gemme konstanter og kan ikke ændres. vi kan ikke tildele variabler til makroerne.
- Vi kan ikke bruge '=' operatør for at tildele værdi til makroerne (f. #define PI 3.14 ).
- Vi bruger ikke semikolon ';' i slutningen af sætningen i #define.