Direktive predprocesorja v C++ so označene z # (razpršitev) simbol na začetku izjave. Pogoste direktive predprocesorja v C++ vključujejo vključitev datoteke in makri definicija. Te direktive so običajno postavljene zunaj funkcije main() na vrhu programa C++. Med predhodno obdelavo se vmesna datoteka z .jaz se ustvari razširitev.
Direktiva #define v C++
V C++ je direktiva #define direktiva predprocesorja, ki se uporablja za definiranje konstant ali makrov. Omogoča vam definiranje simbolnih imen ali vrednosti, ki so nadomeščene v kodi, preden se izvede dejanski postopek prevajanja.
Tukaj je nekaj glavnih poudarkov predprocesorja #define
- V C++ se za definiranje makrov uporablja direktiva predprocesorja #define.
- Makri v C++ so poimenovane konstante ali izrazi, deklarirani z direktivo #define.
- Direktive #define se imenujejo tudi makro direktive.
- Ko v programu C++ naletimo na direktivo #define, se ime definiranega makra nadomesti s konstantno vrednostjo ali izrazom med začetno stopnjo prevajanja.
Sintaksa direktive #define
Sintaksa za uporabo direktive #define je naslednja:
#določite vrednost identifikatorja
Kjer je identifikator ime konstante ali makra, ki se definira, vrednost pa je vrednost, s katero naj bo zamenjan, ko je koda prevedena.
Primer direktive #define
Sledi primer, ki pojasnjuje, kako lahko uporabite direktivo #define v kodi C++:
#include#define PI 3.14159
#define SQUARE(x) ((x) * (x))
int glavni ( ) {
dvojno polmer = 5.0 ;
dvojno območje = PI * KVADRAT ( polmer ) ;
std :: cout << 'Območje: ' << območje << std :: konec ;
vrnitev 0 ;
}
V tem primeru definiramo dve konstanti z uporabo direktive #define: PI, ki predstavlja matematično konstanto pi, in SQUARE, ki je makro, ki izračuna kvadrat dane vrednosti. Te konstante nato uporabimo v naši kodi za izračun površine kroga z danim polmerom.
Razlika med #define in const
Eno pogosto vprašanje, ki se pojavi pri razpravi o direktivi #define, je, kako se razlikuje od uporabe spremenljivk const v C++. Medtem ko oba pristopa omogočata definiranje konstant, ki jih je mogoče uporabiti v vaši kodi, obstaja nekaj ključnih razlik med njima.
Ena velika razlika med #definiraj in konst je, da je #define direktiva predprocesorja, medtem ko je const ključna beseda, ki je del samega jezika C++. To pomeni, da so konstante, definirane z #define, zamenjane z njihovimi vrednostmi, preden je koda prevedena, medtem ko spremenljivke const obravnava sam prevajalnik.
Druga ključna razlika med #define in const je, da imajo spremenljivke const določen tip, medtem ko konstante, definirane z #define, nimajo. To pomeni, da lahko uporabite spremenljivke const na mestih, kjer je zahtevana določena vrsta, medtem ko konstante, definirane z uporabo #define, v teh situacijah morda ne bodo vedno delovale.
Zaključek
Direktiva #define je direktiva predprocesorja, ki se uporablja za definiranje konstant ali makrov. Omogoča nam definiranje simbolnih imen ali vrednosti, ki so nadomeščene v kodi, preden se izvede dejanski postopek prevajanja. Preberite več o direktivi #define v C++ v tem članku.