Bij C-programmeren is #definiëren is een preprocessorrichtlijn die wordt gebruikt om macro's te definiëren. De macro's zijn de ID's gedefinieerd door #define, die vóór de compilatie door hun waarde worden vervangen. We kunnen constanten en functies zoals macro's definiëren met #define. De generieke geneesmiddelen in C worden ook geïmplementeerd met behulp van de #define preprocessor-richtlijn samen met _Algemeen.
Syntaxis van C #define
De syntaxis van #define preprocessor-richtlijn in C is:
Voor het definiëren van constanten
#define MACRO_NAME value>
Voor het definiëren van uitdrukkingen
#define MACRO_NAME (expression within brackets)>
Voor het definiëren van expressies met parameters
Argumenten die in de macro's worden doorgegeven, kunnen in de expressie worden gebruikt.
#define MACRO_NAME( ARG1, ARG2 ,..) (expression within brackets)>
Er zijn nog een paar manieren waarop we macro's kunnen definiëren. Raadpleeg dit artikel voor meer informatie - Macro's en zijn typen in C
Voorbeelden van C #define
Voorbeeld 1:
In het onderstaande voorbeeld hebben we een macro gedefinieerd 'PI' en kende er een constante waarde aan toe die we later in het programma kunnen gebruiken om de oppervlakte van een cirkel te berekenen.
C
sorteeralgoritme samenvoegen
// 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;> }> |
>
>Uitvoer
Area of Circle of radius 21: 1385>
Voorbeeld 2:
In het onderstaande voorbeeld hebben we een macro gedefinieerd 'PI' en er een expressie aan toegewezen, en die waarde van de expressie wordt gebruikt in het programma dat gebruikt 'PI'.
C
klasse versus object-Java
// 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;> }> |
>
>Uitvoer
Area of Circle of radius 7: 147>
Voorbeeld 3:
In het onderstaande voorbeeld hebben we twee macro's gedefinieerd CIRCLE_AREA En VIERKANT_GEBIED met een parameter en die parameter wordt in de uitdrukking gebruikt om respectievelijk de oppervlakte van een cirkel en een vierkant te berekenen .
Java-schijfje
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;> }> |
>
>Uitvoer
Area of Circle of radius 21: 1384 Area of square of side 5: 25>
Belangrijke punten
- Macro's die zijn gedeclareerd met #define worden gebruikt om constanten op te slaan en kunnen niet worden gewijzigd. we kunnen geen variabelen aan de macro's toewijzen.
- Wij kunnen geen gebruik maken van de '=' operator om waarde aan de macro's toe te kennen (bijv. #define PI 3.14 ).
- Wij gebruiken geen puntkomma ';' aan het einde van de instructie in #define.