Mi a #define a C-ben?


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.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük