Legjobb válasz
Az #define az előtti processzor utasítás C nyelven.
Az összes # előtagú utasítás előfeldolgozó utasítások.
1.
#define MAX\_STUDENTS 200
A #define hozzászokott deklarálja a makroállandókat (bármilyen típusúak), a fentiek szerint. Ha egy értéket több helyen használnak a kódban, a kód karbantartása egyszerűvé válik. Amikor a MAX\_STUDENTS értékét meg kell változtatni, akkor azt csak egy kódsorban kell megváltoztatni, több hely helyett.
Ennek a megközelítésnek a hátránya a hibakereső, nem ismeri fel ezt az értéket.
int arr [MAX\_STUDENTS];
Feltételes összeállításban is használható, az alábbiak szerint
#define WINDOWS
#ifdef WINDOWS
..
.. code of Windows OS
..
#else
..
.. code of Linux OS
..
#endif
MEGJEGYZÉS: A #undef segítségével definiálható
2.
#define SQUARE (x) (x * x)
a makrófunkciók olyanok, mint a normál függvények, azzal a különbséggel, hogy az előfeldolgozó helyettesíti a metódushívásokat ahelyett, hogy futás közben meghívná a függvényt. / p>
Az előnyök a funkcióhívás általános költségeinek elkerülése, így a végrehajtás gyorsabb
Négyzet (2 + 3)
Hátrány, hogy a makrófunkciók nem normális függvényként viselkednek. Például vegye figyelembe a fenti makrohívást: SQUARE (2 + 3), amely rossz 11-es értéket eredményez, ahol a normál függvény visszatér 25-re. egy vagy két sor, és nincsenek mellékhatásai, amint az a fentiekben látható.
Válasz
#define egy C előfeldolgozó irányelv a makrók meghatározásához használt.
Ezt bontsuk le.
Az előfeldolgozó utasítás egy program utasítás, amelyet a program fordítása előtt hívnak meg. Valójában bármely sor, amelyet egy # karakter egy előfeldolgozó. Ez magában foglalja a include drivektust is. Az előfeldolgozó irányelveket általános utasítások vagy a szükséges adatok megadására használják a program belsejében.
A makró egy kódblokk, amely nevet kapott. A név bármilyen előfordulása a makró értéke. Mondjuk, definiáltam az AMOUNT nevű makrót, amelynek értéke 200. Most minden alkalommal, amikor az AMOUNT szót használjuk a programban, a fordítás előtt a 200-as szám helyettesíti. Ellentétben a változókkal, ahol az adatok valójában bennük vannak tárolva, makrók inkább alias nevekként viselkednek.
A #define irányelv szintaxisa a következő:
#define MACRONAME value
VAGY
#define MACRONAME (expression)
A makrókhoz numerikus és karakteres érték is rendelhető (idézőjelnek kell lennie). A makrók hasonlóan használhatók bármely más állandó változó.
A makrót az #undef direktívával is megszüntetheti. Itt van a szintaxis:
#undef MACRONAME
//MACRONAME can no longer be used in the program
Remélem, hogy hasznos volt a válaszom.