logo

Sammanställningsprocessen i c

Vad är en sammanställning?

Kompileringen ä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.

Sammanställningsprocessen i c

c-kompileringsprocessen konverterar källkoden som tas som indata till objektkoden eller maskinkoden. Kompileringsprocessen kan delas in i fyra steg, dvs förbearbetning, kompilering, montering och länkning.

Förprocessorn tar källkoden som en indata, och den tar bort alla kommentarer från källkoden. Förprocessorn tar förbehandlardirektivet och tolkar det. Till exempel om , direktivet är tillgängligt i programmet, sedan tolkar förbehandlaren direktivet och ersätter detta direktiv med innehållet i 'stdio.h' fil.

java varaktighet

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

    Förprocessor Kompilator Assemblerare Länkare
Sammanställningsprocessen i c

Förprocessor

Källkoden är koden som skrivs i en textredigerare och källkodsfilen får tillägget '.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 utökade koden till kompilatorn.

Kompilator

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

Assemblerare

Monteringskoden konverteras till objektkod med hjälp av en assembler. Namnet på objektfilen som genereras av assemblern är detsamma 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 'hello.obj'.

Länkare

I huvudsak använder alla program skrivna i C biblioteksfunktioner. Dessa biblioteksfunktioner är förkompilerade och objektkoden för dessa biblioteksfiler lagras med tillägget '.lib' (eller '.a'). Länkarens huvudsakliga funktion är att kombinera objektkoden för biblioteksfiler med objektkoden för vårt program. Ibland uppstår situationen när vårt program refererar 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änkens uppgift är att länka objektkoden för vårt program med objektkoden för biblioteksfilerna och andra filer. Utdata från länken är den körbara filen. Namnet på den körbara filen är detsamma som källfilen men skiljer sig bara 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'. Till exempel, om vi använder printf()-funktionen i ett program, lägger länkaren till sin tillhörande kod i en utdatafil.

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

Hej C

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

Nu kommer vi att skapa ett flödesdiagram av programmet ovan:

Sammanställningsprocessen i c

I ovanstående flödesdiagram tas följande steg för att köra ett program:

  • För det första indatafilen, dvs. Hej C, skickas till förprocessorn och förprocessorn omvandlar källkoden till utökad källkod. Förlängningen av den utökade källkoden skulle vara Hej jag.
  • Den utökade källkoden skickas till kompilatorn och kompilatorn konverterar denna utökade källkod till assemblerkod. Förlängningen av monteringskoden skulle vara hej.s.
  • Denna assemblerkod skickas sedan till assemblern, som omvandlar assemblerkoden till objektkod.
  • Efter skapandet av en objektkod skapar länken den körbara filen. Laddaren kommer sedan att ladda den körbara filen för körningen.