fordítási folyamat a c-ben

mi az a fordítás?

A fordítás A forráskód objektumkódokká történő átalakításának folyamata. Ez a fordító segítségével történik. A fordító ellenőrzi a forráskódot a szintaktikai vagy szerkezeti hibák, és ha a forráskód hibamentes, akkor generálja a tárgykódot.

fordítási folyamat c

A c fordítási folyamat a bemenetként vett forráskódot tárgykóddá vagy gépi kóddá alakítja. A fordítási folyamat négy lépésre osztható, azaz., Előfeldolgozás, fordítás, összeszerelés és összekapcsolás.

az előfeldolgozó bemenetként veszi a forráskódot, és eltávolítja az összes megjegyzést a forráskódból. Az előfeldolgozó átveszi az előfeldolgozó irányelvet és értelmezi azt. Például, ha < stdio.h>, az irányelv elérhető a programban, majd az előfeldolgozó értelmezi az irányelvet, és helyettesíti ezt az irányelvet az ‘stdio’ tartalmával.h ‘ akta.

az alábbiakban bemutatjuk azokat a fázisokat, amelyeken keresztül a programunk áthalad, mielőtt végrehajtható formává alakulna:

  • előfeldolgozó
  • Fordító
  • Assembler
  • Linker

fordítási folyamat c

előfeldolgozó

A forráskód az a kód, amelyet egy szövegszerkesztőben írnak, és a forrás a kódfájl kiterjesztést kap “.c”. Ezt a forráskódot először átadják az előfeldolgozónak, majd az előfeldolgozó kibővíti ezt a kódot. A kód kibontása után a kibővített kód átkerül a fordítóhoz.

Fordító

az előfeldolgozó által kibővített kód átkerül a fordítóhoz. A fordító átalakítja ezt a kódot assembly kódot. Vagy azt mondhatjuk, hogy a C fordító átalakítja az előre feldolgozott kódot összeszerelési kóddá.

Assembler

az assembly kód egy assembler segítségével objektumkóddá alakul. Az assembler által generált objektumfájl neve megegyezik a forrásfájllal. Az objektumfájl kiterjesztése a DOS – ban’.obj, ‘és UNIX-ban a kiterjesztés’o’. Ha a forrásfájl neve ‘hello.c’, akkor az objektumfájl neve ‘ hello.obj’.

Linker

főként a C-ben írt programok könyvtári funkciókat használnak. Ezek a könyvtári függvények előre le vannak fordítva, és ezeknek a könyvtárfájloknak a tárgykódja a ‘gombbal kerül tárolásra.lib ‘(vagy ‘.a’) kiterjesztés. A linker fő munkája a könyvtárfájlok tárgykódjának kombinálása a programunk tárgykódjával. Néha felmerül a helyzet, amikor programunk más fájlokban meghatározott funkciókra utal; akkor a linker nagyon fontos szerepet játszik ebben. Összekapcsolja ezeknek a fájloknak a tárgykódját a programunkkal. Ezért arra a következtetésre jutunk, hogy a linkelő feladata a programunk tárgykódjának összekapcsolása a könyvtárfájlok és más fájlok tárgykódjával. A linker kimenete a futtatható fájl. A futtatható fájl neve megegyezik a forrásfájllal, de csak a kiterjesztésükben különbözik. A DOS-ban a futtatható fájl kiterjesztése ‘.exe’, UNIX-ban pedig a futtatható fájl neve’A.out’. Például, ha printf() függvényt használunk egy programban, akkor a linker hozzáadja a hozzá tartozó kódot egy kimeneti fájlba.

értsük meg egy példán keresztül.

Helló.c

most létrehozunk egy folyamatábra a fenti program:

 fordítási folyamat c

a fenti folyamatábra, a következő lépéseket kell tenni, hogy végre egy programot:

  • először is, a bemeneti fájl, azaz hello.c, átadódik az előfeldolgozónak, és az előfeldolgozó átalakítja a forráskódot kibővített forráskóddá. A kibővített forráskód kiterjesztése hello lenne.i.
  • a kibővített forráskód átadásra kerül a fordítónak, és a fordító ezt a kibővített forráskódot assembly kóddá alakítja. Az összeszerelési kód kiterjesztése hello lenne.s.
  • ezt az összeszerelési kódot ezután elküldi az összeszerelőnek, amely átalakítja az összeszerelési kódot objektumkóddá.
  • objektumkód létrehozása után a linker létrehozza a futtatható fájlt. A betöltő ezután betölti a végrehajtható fájlt a végrehajtáshoz.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.