C ++ pragma en gang

C ++ pragma en gang
I dag lærer vi et av direktivene til C ++ -språk som brukes til å spesifisere sammenstillingen av den medfølgende overskriften -filen en gang. Men før du hopper direkte inn på hovedemnet, la oss først se raskt på det grunnleggende om C ++ programmeringsspråk. Vi vil også lære bruken av overskriftsfiler i C ++ -programmet.

C ++ -språket, noen ganger kjent som "C med klasser", er et generelt programmeringsspråk som er en utvidelse av C-dataspråket. C ++ -språket har utviklet seg veldig over tid. Den nåværende C ++ inneholder muligheter for minnehåndtering på lavt nivå sammen med objektorienterte, generaliserte og funksjonelle funksjoner. Vi bruker overskriftsbibliotekene i C ++ programmering for å unngå å måtte lage koden for hver liten ting. Kompleksiteten og antall kodelinjer reduseres begge. I tillegg lar det deg bruke metodene som er definert i overskriftsfilene til forskjellige formål.

C ++ språkdirektivet håndterer #Pragma en gang som brukes til å minimere programmeringsfeilene. Selv om det støttes av flertallet av fremtredende C- eller C ++ -oversettere inkludert GCC og Clang -oversettere, er det ikke en komponent i C ++ -standarden. Hvis oversetteren ikke er gitt, kan dette føre til bekymring for tilgjengeligheten basert på programmet ditt. Når du bruker #Pragma en gang, er det et eksepsjonelt scenario der det er mange overskriftsfiler med et lignende filnavn.

Fordeler med #Pragma en gang

La oss diskutere noen av de viktige funksjonene i C ++ forbehandlerdirektivet som er “#Pragma en gang”:

  • Som vi vet sammenstiller Pragma en gang bare en gang i det eksisterende programmet, slik at implementeringen eller koden til programmet er mindre.
  • Siden vi vet at kompilasjonsprosessen til pragma en gang er, har vi en unngåelse av navnestrekene.
  • I andre programmer, når vi sammenstiller programmet, tar det mye tid fordi kompilatoren samler hver fil i programmet. Men når vi bruker pragma en gang i programmet, er koden til programmet mindre. Derfor er kompilasjonshastigheten til programmet raskt.

Gjennomføring

I programmering av C og C ++ kommer vi noen ganger over en av forbehandlerdirektivene som er "#Pragma en gang". Som navnet antyder, "en gang" betyr at det tillater eller gjør at en nåværende kildefil blir inkludert i det eksisterende programmet bare en gang om gangen, bare i en enkelt samling. Før forbehandlerdirektivet "#Pragma One", er det et annet forbehandlingsdirektiv som vi brukte for å overvinne dette problemet som er "#include -vakter" på C ++ programmeringsspråket. Men Pragma tillater en gang bare samlingen for en fordi et program som har auto -program kan inneholde flere filer i det.

C ++ -filen kan inneholde flere overskriftsfiler. Dette betyr at den første C ++ -filen og den andre C ++ -filen inneholder lignende overskriftsfiler. Kompilatoren kompilerer den første overskriftsfilen og deretter den andre overskriftsfilen. Dette er fordi begge overskriftsfilene er samlet to ganger. Vi bruker Pragma en gang forbehandlerdirektiv, slik at overskriftsfilene vil kompilere en gang i det eksisterende programmet.

Syntaks:

Her er skrivestilen og implementeringen av forbehandlerdirektivet “#Pragma Once” på C ++ programmeringsspråk. Forbehandleren søker etter programmet etter spesifikke kommandoer som det kan forstå ved å kalle dem forbehandlerinstruksjoner. # (Hash) -tegnet brukes ved starten av hvert forbehandlerdirektiv. Først før oversetteren til og med møter programmet, driver forbehandleren forberedende aktiviteter som implisitt utfører koden, inkludert filene relatert til programmet osv.

Deretter skriver vi "Pragma" nøkkelordet som betyr "pragmatisk informasjon". Pragma -direktivet er inkludert i C ++ -standardene, men tolkningen av hvert Pragma -direktiv er avhengig av programmet som brukes til å utføre standardbiblioteket. En teknikk for å be oversetteren om unik oppførsel er med #Pragma -direktivet. Denne kommandoen er spesielt nyttig for programmer som må benytte seg av visse kompilerte kodefunksjoner eller som er usedvanlig store. Og til slutt skriver vi oppførselen til programmet som vi ønsker å implementere på det eksisterende C ++ -programmet som er "en gang". Dette betyr at når det er mange overskriftsfiler med et lignende filnavn, samler dette bare en gang en gang.

Eksempler:

La oss ta et eksempel på forbehandlerdirektivet "#Pragma en gang", og vi vil forstå hvordan dette direktivet fungerer på C ++ -språk, slik at brukerens sinn og forvirring blir ryddet om både Pragma -direktivene til C ++ språk:

Utvendig.h

For å begynne å skrive programmet, trenger vi alltid først en kompilator der vi skriver og utfører det eksisterende programmet. Installer enhver C ++ kompilator. En ting til er at Pragma -direktivet ikke kjører på online kompilatoren. Dette eksemplet er implementert på "Dev C ++" -kompilatoren. Etter å ha åpnet kompilatoren, oppretter vi først “Eksternt.h ”-fil der vi implementerer Pragma -direktivet.

utvendig.h:
#Pragma en gang
#ifndef ekstern_h
#Define ekstern_h
#inkludere
ved hjelp av navneområdet STD;
Klassespiller

offentlig:
int hastighet;
Spiller()

hastighet = 10;

~ Spiller ()


;
void print ()

cout<< "Test" <
bool spiller = falsk;
#slutt om

Først erklærer vi forbehandlerdirektivet “#Pragma Once” som ber kompilatoren bare inkludere koden i C ++ -filen en gang. Dette er nyttig hvis du har en overskriftsfil som er inkludert i flere C ++ -filer. Deretter legger vi til #Include som er en standardoverskrift som er inkludert i alle C ++ -programmer. I den tredje linjen i koden er en #ifndef ekstern_h. Dette er et kompilatordirektiv som brukes til å opprette en ekstern overskriftsfil. Deretter implementerer vi #Define External_h igjen.

Etter det erklærer vi det offentlige klassenavnet “Player” som forteller kompilatoren at spillerklassen er offentlig. Deretter erklærer vi heltallstypen "hastighet" og initialiserer verdien til den. I neste linje lager vi en spiller () konstruktør. Nå lager vi funksjonen til Print () og passerer cout () -metoden i den. Vi erklærer en variabel av bool-type og initialiserer den falske verdien til den. Dette er en medlemsvariabel erklæring for den spillende medlemsvariabelen. Til slutt bruker vi #Endif fordi det er et kompilatordirektiv som brukes til å avslutte #IFNDEF -setningen.

Hoved.CPP -fil

Først inkluderer vi filen som vi allerede har opprettet - ekstern.H -fil. Deretter inkluderer vi "#include" som brukes til å få dataene fra brukeren og vise dataene til brukeren. Deretter oppretter vi spillerobjektet til typen spiller som vi allerede definerte i det eksterne.H -fil. Deretter kaller vi spilleren og sammenkobler den med hastighetsvariabelen som vi initialiserte i den eksterne filen og skriver den ut ved hjelp av Cout () -metoden. Vi bruker if-statementet slik at vi sjekker om spilleren spiller. Hvis det er sant, viser det spilleren. Hvis det er usant, viser det ingenting. Til slutt returnerer vi 0 til Main () -funksjonen slik at vi kan stoppe utførelsen av programmet.

hoved-.CPP:
#include "ekstern.h "
#inkludere
ved hjelp av navneområdet STD;
int main ()

Spillerspiller;
cout<< "The speed of the player is: " <hvis (spiller)

Skrive ut();

retur 0;

Konklusjon

I denne artikkelen lærte vi om en av de viktige forprosessorene til C ++ som er "#Pragma en gang". Vi lærte hvorfor vi bruker pragma en gang, og vi diskuterte også fordelene. Vi implementerte eksemplet med Pragma en gang med en detaljert forklaring av Pragma en gang direktiv, slik at det ikke er igjen noe forvirringspunkt for brukeren.