Bedste svar
#define er pre processor-sætning i C Language.
Alle sætninger, der er præfikset med #, er preprocessor udsagn.
1.
#define MAX\_STUDENTS 200
#define bruges til at erklære makrokonstanter (af enhver type) som vist ovenfor. Hvis en værdi bruges et antal steder, i koden., Bliver vedligeholdelse af koden let. Når værdien af MAX\_STUDENTS skal ændres, skal den kun ændres i en linje kode i stedet for flere steder.
Ulempen ved denne fremgangsmåde er fejlfinding, genkender ikke denne værdi.
int arr [MAX\_STUDENTS];
Kan også bruges i betinget kompilering som vist nedenfor
#define WINDOWS
#ifdef WINDOWS
..
.. code of Windows OS
..
#else
..
.. code of Linux OS
..
#endif
BEMÆRK: #undef kan bruges til at undefinere
2.
#define SQUARE (x) (x * x)
makrofunktioner er som normale funktioner, bortset fra at forprocessoren erstatter metodekaldene i stedet for at kalde funktionen i løbetid.
Fordele er, at funktionskald overhead undgås, så udførelse er hurtigere
SQUARE (2 + 3)
Ulempen er, at makrofunktionen ikke opfører sig som normale funktioner. Overvej f.eks. Ovenstående makroopkald SQUARE (2 + 3), hvilket resulterer i forkert værdi 11, hvor normal funktion returnerer 25.
Det anbefales at bruge makrofunktion (i stedet for normal funktion), når størrelse er en eller to linjer, og den har ingen bivirkninger, som vist ovenfor.
Svar
#define is a C preprocessor direktiv bruges til at definere makroer .
Lad os nedbryde det.
Et præprocessordirektiv er en programerklæring, der påberåbes, før programkompilering finder sted. Faktisk vil enhver linje efterfulgt af en # karakter er en preprocessor. Dette inkluderer også include -drivet. Preprocessor-direktiverne bruges til at give generel instruktion eller krævede data, som bruges inde i et program.
En makro er en blok med kode, der har fået et navn. Enhver forekomst af dette navn repla afkrævet af værdien af makroen. Sig, jeg definerede makro med navnet AMOUNT, som har en værdi på 200. Nu hver gang ordet AMOUNT bruges i programmet erstattes det med tallet 200 inden kompilering. I modsætning til variabler, hvor data faktisk er gemt inde i dem, makroer handle snarere som aliasnavne.
Syntaks for #define directive er som følger:
#define MACRONAME value
ELLER
#define MACRONAME (expression)
En makro kan tildeles en numerisk såvel som et tegn (skal være inden for anførselstegn). Makroer kan bruges som andre konstante variabler.
Du kan også fjerne defineringen af en makro ved hjælp af #undef-direktivet. Her er syntaksen:
#undef MACRONAME
//MACRONAME can no longer be used in the program
Jeg håber, at mit svar var nyttigt.