Kompileringsprocess i c

Vad är en kompilering?

sammanställningen är en process för att konvertera källkoden till objektkod. Det görs med hjälp av kompilatorn. Kompilatorn kontrollerar källkoden för syntaktiska eller strukturella fel, och om källkoden är felfri genererar den objektkoden.

Kompileringsprocess i c

C-kompileringsprocessen konverterar källkoden som indata till objektkoden eller maskinkoden. Sammanställningen kan delas in i fyra steg, dvs., Förbehandling, kompilering, montering och länkning.

förprocessorn tar källkoden som en ingång och tar bort alla kommentarer från källkoden. Preprocessorn tar preprocessordirektivet och tolkar det. Till exempel, Om <stdio.h>, direktivet är tillgängligt i programmet, sedan tolkar förprocessorn direktivet och ersätter detta direktiv med innehållet i ‘stdio.H ‘ fil.

följande är de faser genom vilka vårt program passerar innan det omvandlas till en körbar form:

  • Preprocessor
  • kompilator
  • Assembler
  • Linker

Kompileringsprocess i c

Preprocessor

källkoden är den kod som skrivs i en textredigerare och källan kodfilen ges en förlängning “.c”. Denna källkod skickas först till förprocessorn, och sedan expanderar förprocessorn denna kod. Efter att ha utökat koden skickas den expanderade koden till kompilatorn.

kompilator

koden som expanderas av förprocessorn skickas till kompilatorn. Kompilatorn konverterar denna kod till monteringskod. Eller vi kan säga att C-kompilatorn omvandlar den förbehandlade koden till monteringskod.

Assembler

monteringskoden konverteras till objektkod med hjälp av en assembler. Namnet på objektfilen som genereras av assembler är samma som källfilen. Förlängningen av objektfilen i DOS är ‘.obj, ‘och i UNIX är tillägget ‘o’. Om namnet på källfilen är ‘ Hej.c’, då skulle namnet på objektfilen vara ‘Hej.obj’.

Linker

huvudsakligen använder alla program skrivna i C biblioteksfunktioner. Dessa biblioteksfunktioner är förkompilerade och objektkoden för dessa biblioteksfiler lagras med ‘.lib ‘(eller’.a’) förlängning. Länkarens huvudsakliga arbete är att kombinera objektkoden för biblioteksfiler med objektkoden för vårt program. Ibland uppstår situationen när vårt program hänvisar till de funktioner som definieras i andra filer; då spelar linker en mycket viktig roll i detta. Den länkar objektkoden för dessa filer till vårt program. Därför drar vi slutsatsen att länkarens jobb är att länka objektkoden för vårt program med objektkoden för biblioteksfilerna och andra filer. Utmatningen från länken är den körbara filen. Namnet på den körbara filen är samma som källfilen men skiljer sig endast i deras tillägg. I DOS är förlängningen av den körbara filen ‘.exe’, och i UNIX kan den körbara filen namnges som ‘a.out’. Om vi till exempel använder printf () – funktionen i ett program, lägger länkaren till sin associerade kod i en utdatafil.

låt oss förstå genom ett exempel.

Hallå.c

nu kommer vi att skapa ett flödesschema över ovanstående program:

 Kompileringsprocess i c

i ovanstående flödesschema tas följande steg för att utföra ett program:

  • för det första inmatningsfilen, dvs hej.c, skickas till förprocessorn och förprocessorn konverterar källkoden till utökad källkod. Utvidgningen av den utökade källkoden skulle vara Hej.i.
  • den expanderade källkoden skickas till kompilatorn, och kompilatorn konverterar denna expanderade källkod till monteringskod. Förlängningen av monteringskoden skulle vara Hej.s.
  • denna monteringskod skickas sedan till assembler, som omvandlar monteringskoden till objektkod.
  • efter skapandet av en objektkod skapar länkaren den körbara filen. Lastaren laddar sedan den körbara filen för körningen.

Lämna ett svar

Din e-postadress kommer inte publiceras.