logo

Kompileringsprosess i c

Hva er en samling?

Kompileringen er en prosess for å konvertere kildekoden til objektkode. Det gjøres ved hjelp av kompilatoren. Kompilatoren sjekker kildekoden for syntaktiske eller strukturelle feil, og hvis kildekoden er feilfri, genererer den objektkoden.

Kompileringsprosess i c

c-kompileringsprosessen konverterer kildekoden tatt som input til objektkoden eller maskinkoden. Kompileringsprosessen kan deles inn i fire trinn, dvs. forhåndsbehandling, kompilering, montering og kobling.

Forbehandleren tar kildekoden som input, og den fjerner alle kommentarene fra kildekoden. Forbehandleren tar forbehandlerdirektivet og tolker det. For eksempel hvis , direktivet er tilgjengelig i programmet, så tolker forbehandleren direktivet og erstatter dette direktivet med innholdet i 'stdio.h' fil.

vårm

Følgende er fasene programmet vårt går gjennom før det blir transformert til en kjørbar form:

    Forbehandler Kompilator Monter Linker
Kompileringsprosess i c

Forbehandler

Kildekoden er koden som er skrevet i et tekstredigeringsprogram og kildekodefilen får utvidelsen '.c'. Denne kildekoden sendes først til forprosessoren, og deretter utvider forprosessoren denne koden. Etter utvidelse av koden, sendes den utvidede koden til kompilatoren.

Kompilator

Koden som utvides av forprosessoren sendes til kompilatoren. Kompilatoren konverterer denne koden til monteringskode. Eller vi kan si at C-kompilatoren konverterer den forhåndsbehandlede koden til monteringskode.

Monter

Monteringskoden konverteres til objektkode ved å bruke en assembler. Navnet på objektfilen generert av assembler er det samme som kildefilen. Utvidelsen til objektfilen i DOS er '.obj', og i UNIX er filtypen 'o'. Hvis navnet på kildefilen er 'Hei C', da vil navnet på objektfilen være 'hello.obj'.

Linker

Hovedsakelig bruker alle programmene skrevet i C bibliotekfunksjoner. Disse bibliotekfunksjonene er forhåndskompilert, og objektkoden til disse bibliotekfilene er lagret med utvidelsen '.lib' (eller '.a'). Hovedarbeidet til linkeren er å kombinere objektkoden til bibliotekfiler med objektkoden til programmet vårt. Noen ganger oppstår situasjonen når programmet vårt refererer til funksjonene som er definert i andre filer; da spiller linker en veldig viktig rolle i dette. Den kobler objektkoden til disse filene til programmet vårt. Derfor konkluderer vi med at jobben til linkeren er å koble objektkoden til programmet vårt med objektkoden til bibliotekfilene og andre filer. Utdataene fra linkeren er den kjørbare filen. Navnet på den kjørbare filen er det samme som kildefilen, men avviker bare i utvidelsene. I DOS er utvidelsen av den kjørbare filen '.exe', og i UNIX kan den kjørbare filen navngis som 'a.out'. For eksempel, hvis vi bruker funksjonen printf() i et program, legger linkeren til den tilhørende koden i en utdatafil.

La oss forstå gjennom et eksempel.

Hei C

 #include int main() { printf('Hello javaTpoint'); return 0; } 

Nå skal vi lage et flytdiagram av programmet ovenfor:

Kompileringsprosess i c

I flytdiagrammet ovenfor tas følgende trinn for å kjøre et program:

  • For det første, inndatafilen, dvs. Hei C, sendes til forprosessoren, og forprosessoren konverterer kildekoden til utvidet kildekode. Utvidelsen av den utvidede kildekoden vil være Hei jeg.
  • Den utvidede kildekoden sendes til kompilatoren, og kompilatoren konverterer denne utvidede kildekoden til monteringskode. Utvidelsen av monteringskoden ville være hei.s.
  • Denne monteringskoden sendes deretter til assembler, som konverterer monteringskoden til objektkode.
  • Etter opprettelsen av en objektkode, oppretter linkeren den kjørbare filen. Lasteren vil da laste den kjørbare filen for kjøringen.