Esiprosessoridirektiivit C++:ssa on merkitty # (hash) symboli lauseen alussa. Yleisiä esiprosessoriohjeita C++:ssa ovat mm tiedoston sisällyttäminen ja makroja määritelmä. Nämä direktiivit sijoitetaan yleensä main()-funktion ulkopuolelle C++-ohjelman yläosassa. Esikäsittelyn aikana välitiedosto, jossa on .i laajennus luodaan.
#define direktiivi C++:ssa
C++:ssa #define-direktiivi on esiprosessoriohje, jota käytetään vakioiden tai makrojen määrittelemiseen. Sen avulla voit määrittää symbolisia nimiä tai arvoja, jotka korvataan koko koodissa ennen varsinaista käännösprosessia.
Tässä on joitain #define-esiprosessorin tärkeimmistä kohokohdista
- C++:ssa makrojen määrittelemiseen käytetään esiprosessorin direktiiviä #define.
- C++:n makrot ovat nimettyjä vakioita tai lausekkeita, jotka on ilmoitettu #define-direktiivillä.
- #define direktiivejä kutsutaan myös makrodirektiiveiksi.
- Kun #define-käsky kohdataan C++-ohjelmassa, määritellyn makron nimi korvataan vakioarvolla tai lausekkeella alkuperäisen käännösvaiheen aikana.
#define-direktiivin syntaksi
#define-direktiivin syntaksi on seuraava:
#määritä tunnistearvo
Missä tunniste on määritettävän vakion tai makron nimi ja arvo on arvo, jolla se tulee korvata koodia käännettäessä.
Esimerkki #define-direktiivistä
Seuraavassa on esimerkki, joka selittää kuinka #define-direktiiviä voidaan käyttää C++-koodissa:
#include#define PI 3.14159
#define NELIÖ(x) ((x) * (x))
int pää ( ) {
kaksinkertainen säde = 5.0 ;
kaksinkertainen alueella = PI * NELIÖ ( säde ) ;
std :: cout << 'Ala:' << alueella << std :: endl ;
palata 0 ;
}
Tässä esimerkissä määritämme kaksi vakiota #define-direktiivin avulla: PI, joka edustaa matemaattista vakiota pi, ja NELIÖ, joka on makro, joka laskee tietyn arvon neliön. Käytämme sitten näitä vakioita koodissamme laskeaksemme tietyn säteen omaavan ympyrän alueen.
Ero #define ja const
Yksi yleinen kysymys, joka herää käsiteltäessä #define-direktiiviä, on kuinka se eroaa const-muuttujien käyttämisestä C++:ssa. Vaikka molempien lähestymistapojen avulla voit määrittää vakioita, joita voidaan käyttää koko koodissasi, niiden välillä on joitain keskeisiä eroja.
Yksi suuri ero #määritellä ja konst #define on esiprosessoriohje, kun taas const on avainsana, joka on osa itse C++-kieltä. Tämä tarkoittaa, että #define-komennolla määritetyt vakiot korvataan niiden arvoilla ennen koodin kääntämistä, kun taas const-muuttujat käsittelee kääntäjä itse.
Toinen keskeinen ero #define:n ja const:n välillä on, että const-muuttujilla on tietty tyyppi, kun taas #define:lla määritetyillä vakioilla ei ole. Tämä tarkoittaa, että voit käyttää const-muuttujia paikoissa, joissa vaaditaan tiettyä tyyppiä, kun taas #define-komennolla määritetyt vakiot eivät välttämättä aina toimi näissä tilanteissa.
Johtopäätös
#define-direktiivi on esikäsittelyohje, jota käytetään vakioiden tai makrojen määrittämiseen. Sen avulla voimme määritellä symbolisia nimiä tai arvoja, jotka korvataan koko koodissa ennen varsinaista käännösprosessia. Lue lisää #define-direktiivistä C++:ssa tässä artikkelissa.