Nella programmazione in C, #definire è una direttiva del preprocessore utilizzata per definire le macro. Le macro sono gli identificatori definiti da #define che vengono sostituiti dal loro valore prima della compilazione. Possiamo definire costanti e funzioni come le macro usando #define. I generici in C vengono implementati anche utilizzando la direttiva del preprocessore #define insieme a _Generico.
Sintassi del C #define
La sintassi di #define direttiva del preprocessore in C è:
Per definire le costanti
#define MACRO_NAME value>
Per definire le espressioni
#define MACRO_NAME (expression within brackets)>
Per definire l'espressione con parametri
Gli argomenti passati nelle macro possono essere utilizzati nell'espressione.
#define MACRO_NAME( ARG1, ARG2 ,..) (expression within brackets)>
Esistono altri modi in cui possiamo definire le macro. Per saperne di più, fare riferimento a questo articolo – Macro e suoi tipi in C
Esempi di C #define
Esempio 1:
Nell'esempio seguente, abbiamo definito una macro 'PI' e gli abbiamo assegnato un valore costante che potremo utilizzare più avanti nel programma per calcolare l'area di un cerchio.
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;> }> |
Lettore multimediale vlc scarica youtube
>
>Produzione
Area of Circle of radius 21: 1385>
Esempio 2:
Nell'esempio seguente, abbiamo definito una macro 'PI' e gli è stata assegnata un'espressione e il valore dell'espressione viene utilizzato nel programma utilizzando '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;> }> |
>
>Produzione
Area of Circle of radius 7: 147>
Esempio 3:
Nell'esempio seguente, abbiamo definito due macro CERCHIO_AREA E AREA_QUADRATA con un parametro e tale parametro viene utilizzato nell'espressione per calcolare rispettivamente l'area del cerchio e del quadrato .
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;> }> |
>
>Produzione
Area of Circle of radius 21: 1384 Area of square of side 5: 25>
Punti importanti
- Le macro dichiarate utilizzando #define vengono utilizzate per memorizzare costanti e non possono essere modificate. non possiamo assegnare variabili alle macro.
- Non possiamo usare il '=' operatore per assegnare valore alle macro (es. #definire PI 3.14 ).
- Non usiamo il punto e virgola ';' alla fine dell'istruzione in #define.