V programiranju C, #definiraj je direktiva predprocesorja, ki se uporablja za definiranje makrov. Makri so identifikatorji, definirani z #define, ki so pred prevajanjem nadomeščeni z njihovo vrednostjo. Z #define lahko definiramo konstante in funkcije, kot so makri. Generiki v C so implementirani tudi z uporabo predprocesorske direktive #define skupaj z _Generic.
Sintaksa C #define
Sintaksa #define direktiva predprocesorja v C je:
Za definiranje konstant
#define MACRO_NAME value>
Za definiranje izrazov
#define MACRO_NAME (expression within brackets)>
Za definiranje izraza s parametri
Argumente, posredovane v makrih, je mogoče uporabiti v izrazu.
#define MACRO_NAME( ARG1, ARG2 ,..) (expression within brackets)>
Obstaja še nekaj načinov, s katerimi lahko definiramo makre. Če želite izvedeti več, si oglejte ta članek – Makri in njihove vrste v C
Primeri C #define
Primer 1:
V spodnjem primeru smo definirali makro 'PI' in mu dodelili konstantno vrednost, ki jo lahko kasneje v programu uporabimo za izračun ploščine kroga.
C
10 od 50,00
// 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;> }> |
>
>Izhod
Area of Circle of radius 21: 1385>
Primer 2:
V spodnjem primeru smo definirali makro 'PI' in mu dodeli izraz, ta vrednost izraza pa se uporabi v programu z uporabo 'PI'.
C
linearno iskanje v Javi
// 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;> }> |
velikonočna jajca v androidu
>
>Izhod
Area of Circle of radius 7: 147>
Primer 3:
V spodnjem primeru smo definirali dva makra CIRCLE_AREA in SQUARE_AREA s parametrom in ta parameter se uporabi v izrazu za izračun površine kroga oziroma kvadrata .
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;> }> |
>
pande iterrows
>Izhod
Area of Circle of radius 21: 1384 Area of square of side 5: 25>
Pomembne točke
- Makri, deklarirani z #define, se uporabljajo za shranjevanje konstant in jih ni mogoče spremeniti. makrom ne moremo dodeliti spremenljivk.
- Ne moremo uporabiti '=' operator za dodelitev vrednosti makrom (npr. #define PI 3.14 ).
- Podpičja ne uporabljamo ';' na koncu stavka v #define.