Különbség az GCC és a CC Compiler között A különbség

Anonim

GCC vs CC Compiler

A CC a UNIX fordítóparancsnak adott név. Ezt az operációs rendszer alapértelmezett fordítóparancsaként használja, és ugyanezzel a paranccsal végrehajtható. Az GCC viszont a GNU Compiler operációs rendszer. A GNU és Linux rendszereken futó rendszerek esetében gyakori, hogy a CC egy link, így a szkriptek egymással felcserélhetően és egyszerűen használhatják a fordítót. A GNU fordítói gyűjtemény és a CC fordító használata tekintetében különbségek vannak. Ezek a különbségek általában két fő csoportba sorolhatók. Ezek egyike pontosabb, míg a másik csoport általánosabb.

Differenciák

A két fő közötti különbség a C-kompilátorokkal és a C ++ fordítóprogramokkal foglalkozik. A C ++ fordítóprogramok elfogadják a C ++ programokat, de nem programoznak C-ben önkényesen. Ez általában igaz, bár bebizonyosodott, hogy C nyelvű kódot lehet írni egy olyan részhalmazban, amelyet a C ++ jól ért, még akkor is, ha sok C program nem érvényes C ++ program. Másrészről, a C fordítók elfogadják a C programokat, de elutasítják a benne futtatott C ++ programok legtöbbjét. Ennek a problémának az oka, hogy a legtöbb C ++ program olyan konstrukciókat futtat, amelyek nem állnak rendelkezésre C.

Az ezekhez a programnyelvekhez rendelkezésre álló könyvtárak nagyban függenek a nyelvtől. A C ++ programok C-könyvtárakon is végrehajthatók, de ez platform-specifikus. C programok viszont nem használhatják a C ++ könyvtárakat; így a C ++ általában nagyobb könyvtárat állít rendelkezésre, mint a C.

A Solaris-ban a fordító parancs által előállított objektumkód semmilyen módon nem kompatibilis a g ++ által előállított kóddal, mivel ezek két különálló fordítóprogramok és azok az egyezmények eltérnek. A legfontosabb eltérõ pontok a kivételkezelés és a nevek összetévesztése. Fontos azonban megjegyezni, hogy a névbevitel fontos ahhoz, hogy megakadályozza az objektumok összeférhetőségét. Ez ténylegesen arra hívja fel a figyelmet, hogy a CC-ben összeállított könyvtár használatához a teljes programot CC-ben kell összeállítani. Továbbá, ha a CC-vel és a g ++ -tel társított könyvtárat kell használni, a könyvtárak újrafordítását meg kell tenni a kívánt funkciók biztosításához.

A létrehozott összeszerelő minőségében az GCC, amely a GNU Compiler Gyűjtemény, rendkívül jó ebben a feladatban. A natív fordítók azonban néha jobban működnek. Az Intel kompilerekről elmondható, hogy alapos optimalizálásokat végeznek, amelyek még nem replikálódnak az ÖET-ben.

Mindkét fordító mindenképpen új a jelenlegi szabványoknak, annak ellenére, hogy apró különbségek vannak a standard nyelv és a fordító által támogatott nyelv között. Ezek a szabványok (C ++ 98, C ++ 2003, C99).A korábbi C89-es támogatás mindkét fordítóban rendelkezésre áll, és a várt válaszok megértése elengedhetetlen annak biztosításához, hogy a fordító a várakozásoknak megfelelően alakuljon ki. Mindent egybevetve úgy tűnik, hogy az ÖET megkönnyíti az élet könnyebbé tételét a meghosszabbítások és csípések miatt, amelyek a kívánt eredmény eléréséhez szükségesek.

Összegzés

Probléma van a C és C ++ fordítókönyvtárak keresztkompatibilitásával.

A C ++ programok C-könyvtárakon is végrehajthatók, de platform-specifikusak.

A CC-ben komponált könyvtár használatához az egész programot össze kell állítani a CC-vel és nem az GCC-vel.

Ha CC-ben és g + -ben fordított könyvtárat használ, az egyik könyvtárat újra kell fordítani.

Az GCC csodálatos munkát végez a minőségi szerelvények létrehozásában.

Mind a CC, mind az GCC a nyelvi jellemzőkben nagyszerű a jelenlegi szabványokhoz képest.