I C-programmering, #definere er et forprosessordirektiv som brukes til å definere makroer. Makroene er identifikatorene definert av #define som erstattes av verdien før kompilering. Vi kan definere konstanter og funksjoner som makroer ved å bruke #define. Generikkene i C er også implementert ved å bruke #define preprocessor-direktivet sammen med _Generisk.
char til int
Syntaks for C #define
Syntaksen til #define forbehandlerdirektivet i C er:
For å definere konstanter
#define MACRO_NAME value>
For å definere uttrykk
#define MACRO_NAME (expression within brackets)>
For å definere uttrykk med parametere
Argumenter som sendes i makroene kan brukes i uttrykket.
#define MACRO_NAME( ARG1, ARG2 ,..) (expression within brackets)>
Det er noen flere måter vi kan definere makroer på. For å vite mer, se denne artikkelen - Makroer og dens typer i C
Eksempler på C #define
Eksempel 1:
I eksemplet nedenfor har vi definert en makro «PI» og tildelt den en konstant verdi som vi kan bruke senere i programmet for å beregne arealet av en sirkel.
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;> }> |
>
>Produksjon
Area of Circle of radius 21: 1385>
Eksempel 2:
I eksemplet nedenfor har vi definert en makro «PI» og tildelt det et uttrykk, og den verdien av uttrykket brukes i programmet som bruker '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;> }> |
>
>Produksjon
Area of Circle of radius 7: 147>
Eksempel 3:
I eksemplet nedenfor har vi definert to makroer CIRCLE_AREA og SQUARE_AREA med en parameter og den parameteren brukes i uttrykket for å beregne arealet av henholdsvis sirkel 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;> }> |
>
>Produksjon
Area of Circle of radius 21: 1384 Area of square of side 5: 25>
Viktige poeng
- Makroer deklarert med #define brukes til å lagre konstanter og kan ikke endres. vi kan ikke tilordne variabler til makroene.
- Vi kan ikke bruke '=' operatør for å tildele verdi til makroene (f.eks. #define PI 3.14 ).
- Vi bruker ikke semikolon ';' på slutten av setningen i #define.