GCC vs CC fordító
A CC a UNIX fordítóparancsnak adott név. Alapértelmezett fordítóparancsként használja az operációs rendszer számára, és ugyanazzal a paranccsal is végrehajtható. A GCC viszont a GNU Compiler operációs rendszer. A GNU és Linux rendszeren futó rendszereken általában a CC hivatkozást talál, hogy a parancsfájlok bármelyik fordítót felcserélhetően és egyszerűen használhassák. Különböző különbségek figyelhetők meg a GNU fordító gyűjtemény és a CC fordító használatában. Ezeket a különbségeket általában két fő csoportba lehet sorolni. Ezek közül az egyik konkrétabb, míg a másik csoport általánosabb.
Különbségek
A két különbség a C és a C ++ fordítókkal foglalkozik. A C ++ fordítók elfogadják a C ++ programokat, de önkényesen nem állítják össze a C programokat. Ez általában igaz, bár bebizonyosodott, hogy olyan C nyelvkódot is lehet írni egy alkészletbe, amelyet a C ++ jól megért, még akkor is, ha sok C program nem érvényes C ++ program. Másrészt a C-fordítók elfogadják a C-programokat, de elutasítják a benne futó C ++ programok többségét. A probléma felmerülésének oka az, hogy a legtöbb C ++ program olyan konstrukciókat futtat, amelyek nem állnak rendelkezésre a C nyelven.
Ezeknek a programnyelveknek a rendelkezésre álló könyvtárai nagyban függnek a nyelvetől. A C ++ programok C könyvtárakban is végrehajthatók, de ez platformfüggő. A C programok viszont nem használhatják a C ++ könyvtárakat; így a C ++ általában nagyobb könyvtárkészlettel rendelkezik, mint a C.
A Solaris rendszeren 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 fordító, és azok konvenciói különböznek. A fő különbségek a kivételek kezelése és a névkezelés. Fontos azonban megjegyezni, hogy a névkezelés fontos az objektumok összeegyeztethetőségének megakadályozása érdekében. Ez valójában arra a tényre mutat, hogy a CC-ben összeállított könyvtár használatához a teljes programot CC-ben kell lefordítani. Továbbá, ha CC-vel és egy g ++-lel összeállított könyvtárat kell használni, akkor a kívánt funkcionalitás biztosítása érdekében könyvtárakat újra kell fordítani..
A keletkező összeszerelő minőségében a GCC, amely a GNU Compiler Collection, rendkívül jó ebben a feladatban. A natív fordítók azonban időnként jobban működnek. Az Intel fordítóinak alapos optimalizálása van, amelyet még nem kell megismételni a GCC-ben.
Mindkét fordító teljesen új a jelenlegi szabványokhoz, annak ellenére, hogy apró különbségek vannak a szabványnyelvek és a fordító által támogatott nyelv között. Ezek a szabványok (C ++ 98, C ++ 2003, C99). A régebbi C89 támogatás mindkét fordítóban elérhető, és a várt válaszok megértése elengedhetetlen annak biztosítása érdekében, hogy a fordító a várt módon működjön. Összességében úgy tűnik, hogy a GCC arra koncentrál, hogy megkönnyítse az életet azáltal, hogy a kívánt eredmény elérése érdekében elvégezhető kiterjesztéseket és csípeket elvégezhetjük..
összefoglalás
Probléma van a C és C ++ fordító könyvtárak keresztkompatibilitásával.
A C ++ programok C könyvtárakban is végrehajthatók, de ez platformfüggő.
A CC-ben összeállított könyvtár használatához az egész programot CC-vel kell összeállítani, nem pedig a GCC-vel.
Ha van könyvtára CC-ben és g ++-ban lefordítva, akkor az egyik könyvtárat újra kell fordítani.
A GCC csodálatos munkát végez a minőségi szerelvények készítésében.
A CC és a GCC nyelvi tulajdonságai egyaránt nagyszerűek a jelenlegi szabványokhoz képest.