Különbség a GCC és a CC fordító között

GCC vs CC Fordító

a CC a UNIX Fordító parancsának adott név. Az operációs rendszer alapértelmezett fordítóparancsaként használják, és ugyanazzal a paranccsal is végrehajtható. A GCC viszont a GNU Fordító operációs rendszer. A GNU-n és Linuxon futó rendszereken gyakori, hogy a CC egy link, így a szkriptek felcserélhetően és egyszerűen használhatják a fordítót. Különböző különbségek figyelhetők meg a GNU compiler collection és a CC compiler használatával kapcsolatban. Ezek a különbségek általában két fő csoportba sorolhatók. Ezek közül az egyik konkrétabb, míg a másik csoport általánosabb.

különbségek

a kettő közötti fő különbség a C és a C++ fordítókkal foglalkozik. A C++ fordítók elfogadják a C++ programokat, de nem fordítják le a programokat C önkényesen. Ez általában igaz, bár bebizonyosodott, hogy C nyelvkódot lehet írni egy olyan részhalmazba, amelyet a C++ jól megérthet, 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 bennük futó C++ programok többségét. A probléma oka az, hogy a legtöbb C++ Program olyan konstrukciókat futtat, amelyek nem állnak rendelkezésre C-ben.

ezeknek a programnyelveknek a rendelkezésre álló könyvtárai nagymértékben függenek a nyelvtől. C++ programok végre C könyvtárak, de ez platform specifikus. 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 Solarison a compiler parancs által előállított tárgykód semmilyen módon nem kompatibilis a g++ által előállított kóddal, mivel ez két különálló fordító, és konvencióik eltérőek lesznek. A fő különbség a kivételkezelés és a nevek összekeverése. Fontos azonban megjegyezni, hogy a név mangling fontos annak megakadályozása érdekében, hogy az objektumok kompatibilisek legyenek egymással. Ez valójában arra a tényre utal, 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 EGY CC-vel összeállított könyvtárat, egy másikat pedig g++ – val kell használni, akkor a könyvtárak újrafordítását kell elvégezni a kívánt funkcionalitás biztosítása érdekében.

a létrehozott assembler 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ókról elmondható, hogy alapos optimalizálással rendelkeznek, amelyeket még meg kell ismételni a GCC-ben.

mindkét fordító teljesen új a jelenlegi szabványoknak, annak ellenére, hogy apró különbségek vannak a szabványok nyelve é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 mind a fordítókban elérhető, mind a várt válaszok megértése elengedhetetlen annak biztosításához, hogy a fordító a várt módon elinduljon. Összességében úgy tűnik, hogy a GCC arra összpontosít, hogy megkönnyítse az életet a kiterjesztések és a csípések miatt, amelyeket meg lehet tenni a kívánt eredmény elérése érdekében.

összefoglaló

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

A C++ programok végrehajthatók C könyvtárakon, de ez platformspecifikus.

a CC-ben összeállított könyvtár használatához a teljes programot CC-vel kell lefordítani, nem pedig GCC-vel.
Ha van egy CC és g++ nyelven összeállított könyvtár, akkor az egyik könyvtárat újra kell fordítani.

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

mind a CC, mind a GCC nyelvi jellemzői nagyszerűek a jelenlegi szabványokhoz képest.

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

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