#définir en C
En programmation C, #définir est une directive de préprocesseur utilisée pour définir des macros. Les macros sont les identifiants définis par #define qui sont remplacés par leur valeur avant compilation. Nous pouvons définir des constantes et des fonctions comme des macros en utilisant #define. Les génériques en C sont également implémentés à l'aide de la directive de préprocesseur #define avec _Générique.
Syntaxe de C #define
La syntaxe de #define directive du préprocesseur en C est :
Pour définir des constantes
#define MACRO_NAME value
Pour définir des expressions
#define MACRO_NAME (expression within brackets)
Pour définir une expression avec des paramètres
Les arguments passés dans les macros peuvent être utilisés dans l'expression.
#define MACRO_NAME( ARG1, ARG2 ,..) (expression within brackets)
Il existe quelques autres façons de définir des macros. Pour en savoir plus, référez-vous à cet article – Macros et ses types en C
Exemples de C #define
Exemple 1:
Dans l'exemple ci-dessous, nous avons défini une macro 'PI' et lui avons attribué une valeur constante que nous pourrons utiliser plus tard dans le programme pour calculer l'aire d'un cercle.
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;> }> |
Sortir
Area of Circle of radius 21: 1385
Exemple 2 :
Dans l'exemple ci-dessous, nous avons défini une macro 'PI' et lui a attribué une expression, et cette valeur de l'expression est utilisée dans le programme en utilisant '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;> }> |
Sortir
Area of Circle of radius 7: 147
Exemple 3 :
Dans l'exemple ci-dessous, nous avons défini deux macros CIRCLE_AREA et SQUARE_AREA avec un paramètre et ce paramètre est utilisé dans l'expression pour calculer respectivement l'aire du cercle et du carré .
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;> }> |
Sortir
Area of Circle of radius 21: 1384 Area of square of side 5: 25
Les points importants
- Les macros déclarées à l'aide de #define sont utilisées pour stocker des constantes et ne peuvent pas être modifiées. nous ne pouvons pas attribuer de variables aux macros.
- Nous ne pouvons pas utiliser le '=' opérateur pour attribuer une valeur aux macros (par ex. #définir PI 3.14 ).
- Nous n'utilisons pas le point-virgule ';' à la fin de l'instruction dans #define.