Cel mai bun răspuns
#define este instrucțiunea preprocesor în limbaj C.
Toate declarațiile prefixate cu # sunt preprocesator declarații.
1.
#define MAX\_STUDENTS 200
#define este folosit pentru declarați constante macro (de orice tip), așa cum se arată mai sus. Dacă o valoare este utilizată în mai multe locuri, în cod., Întreținerea codului devine ușoară. Când valoarea MAX\_STUDENTS trebuie modificată, trebuie modificată numai într-o singură linie de cod în loc de mai multe locuri.
Dezavantajul acestei abordări este depanatorul, nu recunoaște această valoare.
int arr [MAX\_STUDENTS];
Poate fi utilizat și în compilarea condiționată, așa cum se arată mai jos
#define WINDOWS
#ifdef WINDOWS
..
.. code of Windows OS
..
#else
..
.. code of Linux OS
..
#endif
NOTĂ: #undef poate fi utilizat pentru a defini
2.
#define SQUARE (x) (x * x)
funcțiile macro, sunt ca funcțiile normale, cu excepția faptului că preprocesorul înlocuiește apelurile metodei, în loc să apeleze funcția în timpul rulării.
Avantajele sunt evitarea funcției suprasolicitarea apelului, deci execuția este mai rapidă
SQUARE (2 + 3)
Dezavantajul este că funcția macro nu se comportă ca funcții normale. De exemplu, luați în considerare mai sus apelul macro SQUARE (2 + 3), care rezultă o valoare greșită 11, în care funcția normală revine la 25.
Se recomandă utilizarea funcției macro (în loc de funcția normală), atunci când dimensiunea este una sau două linii și nu are efecte secundare, așa cum se arată mai sus.
Răspuns
#define este un C preprocesator directivă folosit pentru a defini macro .
Să „descompunem acest lucru.
O directivă preprocesor este o instrucțiune de program care este invocată înainte de a avea loc compilarea programului. De fapt, orice linie urmată de un # caracterul este un preprocesator. Aceasta include și include directiva. Directivele preprocesatorului sunt utilizate pentru a furniza instrucțiuni generale sau datele necesare care sunt utilizate în interiorul unui program.
O macrocomandă este un bloc de cod căruia i s-a dat un nume. Orice apariție a acestui nume este înlocuită cedat de valoarea macro-ului. Spuneți, am definit macro-ul numit SUMA care valoarea lui este 200. Acum, de fiecare dată când cuvântul SUMĂ este utilizat în program, acesta este înlocuit cu numărul 200 înainte de compilare. Spre deosebire de variabile, în care datele sunt stocate în interiorul lor, macrocomenzile acționează mai degrabă ca nume de alias.
Sintaxa directivei #define este după cum urmează:
#define MACRONAME value
SAU
#define MACRONAME (expression)
O macro poate fi atribuită atât unei valori numerice, cât și a unui caracter (trebuie să fie în ghilimele). Macro-urile pot fi utilizate ca orice alte variabile constante.
De asemenea, puteți anula definirea unei macrocomenzi utilizând directiva #undef. Aici este sintaxa:
#undef MACRONAME
//MACRONAME can no longer be used in the program
Sper că răspunsul meu a fost de ajutor.