Mikä on #define-direktiivi C++:ssa

Mika On Define Direktiivi C Ssa



Esikäsittelyllä C++:ssa tarkoitetaan ohjelman kääntämisen tai kääntämisen alkuvaihetta, jossa lähdeohjelmatiedostoa muokataan esiprosessorin ohjeiden perusteella. Nämä direktiivit, jotka on merkitty # symboli, esiprosessori suorittaa ne ja vaikuttavat lähdekoodiin ennen kuin pääohjelma suoritetaan.

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.