Meilleure réponse
#define est une instruction préprocesseur en langage C.
Toutes les instructions précédées de # sont préprocesseur instructions.
1.
#define MAX\_STUDENTS 200
#define est utilisé pour déclarer des constantes de macro (de tout type), comme indiqué ci-dessus. Si une valeur est utilisée à plusieurs endroits, dans le code., La maintenance du code devient facile. Lorsque la valeur de MAX\_STUDENTS doit être modifiée, elle ne doit lêtre que sur une seule ligne de code au lieu de plusieurs endroits.
Linconvénient de cette approche est le débogueur, ne reconnaît pas cette valeur.
int arr [MAX\_STUDENTS];
Peut également être utilisé dans la compilation conditionnelle, comme indiqué ci-dessous
#define WINDOWS
#ifdef WINDOWS
..
.. code of Windows OS
..
#else
..
.. code of Linux OS
..
#endif
REMARQUE: #undef peut être utilisé pour annuler la définition
2.
#define SQUARE (x) (x * x)
Les fonctions de macro, sont comme des fonctions normales, sauf que le préprocesseur remplace les appels de méthode, au lieu dappeler la fonction pendant lexécution.
Les avantages sont que la surcharge des appels de fonction est évitée, donc lexécution est plus rapide
SQUARE (2 + 3)
Linconvénient est que la fonction macro ne se comporte pas comme des fonctions normales. Par exemple, considérez ci-dessus lappel de macro SQUARE (2 + 3), qui donne une valeur erronée 11, où la fonction normale renvoie 25.
Il est recommandé dutiliser la fonction macro (au lieu de la fonction normale), lorsque la taille est une ou deux lignes, et il na pas deffets secondaires, comme indiqué ci-dessus.
Réponse
#define est un C préprocesseur directive utilisée pour définir les macros .
Décomposons cela.
Une directive de préprocesseur est une instruction de programme qui est invoquée avant la compilation du programme. En fait, toute ligne suivie par un # est un préprocesseur. Cela inclut également le drective include . Les directives du préprocesseur sont utilisées pour fournir des instructions générales ou les données requises qui sont utilisées à lintérieur dun programme.
Une macro est un bloc de code auquel un nom a été attribué. Toute occurrence de ce nom est repla ced par la valeur de la macro. Disons, jai défini la macro nommée AMOUNT dont la valeur est 200. Désormais, chaque fois que le mot AMOUNT est utilisé dans le programme, il est remplacé par le nombre 200 avant la compilation. Contrairement aux variables, où les données sont en fait stockées à lintérieur, les macros agissent plutôt comme des noms dalias.
La syntaxe de la directive #define est la suivante:
#define MACRONAME value
OU
#define MACRONAME (expression)
Une macro peut se voir attribuer une valeur numérique ainsi quun caractère (doit être entre guillemets). Les macros peuvent être utilisées comme toute autre variable constante.
Vous pouvez également dé-définir une macro en utilisant la directive #undef. Voici la syntaxe:
#undef MACRONAME
//MACRONAME can no longer be used in the program
Jespère que ma réponse vous a été utile.