Introduksjon til forprosessor direktiver i C

Oftest lages det som en misforståelse at forprosessorer eller makroer er en del av samlingen av programmet, men det er helt feil. Forprosessor-direktiver er typen makroer og en fase før kompilering finner sted. Det kan sies at dette er noen sett med instruksjoner gitt til kompilatoren for å utføre faktisk kompilering. De er også kjent som lengre konstruksjon forkortelser for makroer, noe som betyr at verdien i makroer blir erstattet med kodesegmentet. Makro er definert av et spesielt symbol og har et symbol som begynner med "#". Derfor er disse # definere en slags spesiell forprosessor etterfulgt av den faktiske kompilatoren. I dette emnet skal vi lære om forprosessor-direktiver i C.

Forbehandleren har en spesiell type representasjon for identifikasjon som ethvert forbehandlingsdirektiv initierer seg med et spesielt symbol på "#" etterfulgt av en identifikator og deretter direktivets navn. Whitespace er også tillatt før og etter #. For eksempel inkluderer #.

Det er visse passformer eller fasiliteter som en C-forprosessor kan tilby:

  • Topptekstfiler: Inkludering av overskriftsfiler er en måte som erklæringer kan erstattes av programsyntaks og programdel.
  • Utvide makro: Å definere makroer er som å forkorte et stykke kode som en C-forbehandler erstatter makroene med deres respektive definisjon gjennomgående.
  • Sammendrag etter forhold: I henhold til forskjellige scenarier eller forskjellige forhold er inkludering av visse deler av programmet mulig ved betinget sammenstilling.
  • Linjekontroll: Hvis du bruker et program for å kombinere eller omorganisere noen eller flere kildefiler til en mellomfil for kompilering, kan du bruke linjekontroll for å informere kompilatoren om hvor hver kildelinje stammer fra.

Typer forprosessor-direktiver

Alle typer forprosessor-direktiver er som følger:

  1. # definere
  2. # inkluderer
  3. # ifdef
  4. # undef
  5. #ifndef
  6. # hvis
  7. #ellers
  8. #elif
  9. #slutt om
  10. #feil
  11. #pragma

1. #definere (makroer)

En makro er et kodebit som erstattes av en verdi av makrokoden. Enhver makro er stort sett beskrevet og definert av dets # definisjonsdirektiv.

syntaks:

#define token value

Det er to typer makroer:

  • Funksjon - som makroer
  • Objekt - som makroer
Funksjon - som makroer

Funksjonen like-makro fungerer nesten som en funksjonsanrop.

For eksempel:

#define MAX(a, b) ((a)>(b) ? (a): (b))

MAX her er makronavnet.

Eksempel:

Produksjon:

Objekt - som makroer

Objektlignende makroer er typen identifikator erstattet av verdi. Det brukes mest for å representere numeriske konstanter.

#define PI 3.1415

Her vil verdien av PI erstattes av makroen.


Produksjon:

2. # inkluder

Det er en annen funksjonalitet for inkluderer forprosessor-direktivet. Den har sine egne tre varianter som erstatter koden med den gjeldende kildefilkoden.

Tre varianter er som følger:

  • #inkludere
  • # include”fil”
  • Inkluder alt annet

#inkludere

Søker etter en fil i den definerte listen over systemet eller katalogene som spesifisert, og søker deretter etter en standardliste med systembiblioteker.

# include”fil”

Denne typen brukes til dine egne tilpassede headerfiler av programmet. Det blir søkt etter en fil som heter fil først i den gjeldende katalogen etterfulgt av systemoverskriftsfiler og nåværende kataloger for gjeldende katalogfil.

# inkluder noe

Denne typen inkluderer forbehandlingsdirektiv brukes når ingen av de andre gjenværende to typene av direktivet og dens argumenter ikke passer og tilfredsstiller beregningsstrukturen.

3. #Ifdef

Sjekker om makroen er definert av # definere eller ikke. Hvis ja, kjører den koden ellers vil den ikke.

syntaks:

#ifdef MACRO
(
Code body
)
#endif
#undef:

Hvis du avbryter definisjonen av en makro, betyr det at den er udefinert og går foran #undef-direktivet.

syntaks:

#undef token

Produksjon:

4. Ifndef

Denne prosessoren sjekker om #define er definert eller ikke av #define. Hvis ja, kjører den koden.

syntaks:

#Ifndef MACRO
//code
#endif
#If

Denne prosessoren fungerer som en if-loop, den evaluerer uttrykket eller tilstanden. Hvis tilstanden er sann, vil den utføre koden ellers ikke.

syntaks:

#if expression
//code
#endif
#else

Direktivet #else-forbehandler brukes til å evaluere uttrykket eller tilstanden hvis tilstanden til #if er falsk. Det kan brukes med #if, #elif, #ifdef og #ifndef-direktiver.

syntaks:

#if expression
//if body
#else
//else body
#endif

Eksempel:

Produksjon:

5. #Feil

Som navnet antyder Feilforbehandlingsdirektiv brukes til å indikere en feil, og deretter gir kompilatoren en dødelig feil hvis feildirektivet blir funnet og hopper over de neste kompileringstrinnene.

Produksjon:

6. #pragma

Det avhenger av kompilatoren da forskjellige operativsystemer og forskjellige maskiner gir alle typer operativsystemfunksjoner som brukes av kompilatoren for å tilby tilleggsinformasjon til kompilatoren.

syntaks:

#pragma token

Eksempel:

Produksjon:

Hver forprosessor har sin egen betydning som betinget direktiv brukes til å sjekke om en del av programmet skal tas i betraktning basert på scenarier eller ikke.

Anta at et program ønsker å bli kompilert i et spesifikt miljø med den spesifikke konfigurasjonen av operativsystem, men så snart det går til den fasen av kompilering, kaster det en feil, eller det kan gi en ugyldig kode bare gir programmet sitt muligheten for et stort nei for å koble programmet og kjøre det mens du kjører. Det kan også være en annen mulighet der den samme kildefilen med to forskjellige programmer kan gjøre en tidkrevende konsistenssjekk eller dens umiddelbare data, eller skrive ut verdiene til data med feilsøking.

Disse scenariene som skal opprettes med beregning, kan også brukes til å kjøre på en maskin ved å bruke forbehandlingsdirektiver.

Konklusjon

Produksjonen fra C Preprocessor ligner på inngangen, bortsett fra at alle forbehandlingsdirektivene er erstattet med blanke linjer eller mellomrom. Ulike filer og formater har forskjellige syntakser som sier at starten på en ny fil er laget, eller som indikerer at en fil skal returneres eller behandles, bør gjøres før kompilering.

Alle scenariene brukes for å gi andre beskjed om kraften til C-forbehandler og hvordan den utvikler seg med forskjellige versjoner av kompilatoren som er startet med GCC- og ANSI-standarder.

Anbefalte artikler

Dette er en guide til forprosessordirektiver i C. Her diskuterer vi hvilke typer forprosessor-direktiver med syntaks og eksempler. Du kan også se på følgende artikler for å lære mer-

  1. Omvendt antall i C
  2. Sorterer i C.
  3. Hashing-funksjon i C
  4. Fortsett uttalelse i C
  5. Sorterer i C #
  6. Hvordan hashingfunksjon fungerer i php?