GCC ja CC-kompilaatori erinevus

GCC vs CC koostaja

CC on UNIX-i kompilaatori käsule antud nimi. Seda kasutatakse teie opsüsteemi vaikekompilaatori käsuna ja see on ka sama käsuga käivitatav. GCC seevastu on GNU Compiler opsüsteem. GNU ja Linuxis töötavates süsteemides on tavaline, et CC on link, et skriptid saaksid kasutada mõlemat kompilaatorit vaheldumisi ja hõlpsalt. GNU kompilaatori ja CC kompilaatori kasutamisel on erinevaid erinevusi. Need erinevused võib üldiselt jagada kahte põhirühma. Üks neist on täpsem, teine ​​rühm üldisem.

Erinevused

Peamine erinevus nende kahe vahel on seotud C-kompilaatorite ja C ++ -kompilaatoritega. C ++ kompilaatorid aktsepteerivad C ++ programme, kuid ei komponeeri programme C suvaliselt. See kehtib üldiselt, kuigi on tõestatud, et C-keele koodi on võimalik kirjutada alamhulka, millest C ++ saab hästi aru, isegi siis, kui paljud C-programmid pole kehtivad C ++ -programmid. Teisest küljest aktsepteerivad C-kompilaatorid C-programme, kuid lükkavad tagasi suurema osa neis töötavatest C ++ -programmidest. Selle probleemi ilmnemise põhjuseks on see, et enamik C ++ programme käivitab konstruktsioone, mis pole C-keeles saadaval.

Nende programmi keelte jaoks saadaolevad raamatukogud sõltuvad suuresti keelest. C ++ programmid võivad toimida C-teekides, kuid see on platvormispetsiifiline. C-programmid seevastu ei saa kasutada C ++ teeke; seega kipub C ++ olema suurem raamatukogu komplekt kui C.

Solarises pole kompilaatori käsu toodetav objektkood mingil moel ühilduv g ++ toodetud koodiga, kuna need on kaks eraldi kompilaatorit ja nende konventsioonid erinevad. Peamised erinevad punktid on erandite käsitlemine ja nimede haldamine. Siiski on oluline märkida, et nime mangling on oluline objektide ühilduvuse vältimiseks. See osutab tegelikult asjaolule, et CC-s kompileeritud teegi kasutamiseks tuleb kogu programm kompileerida CC-s. Samuti, kui peate kasutama CC-ga kompileeritud raamatukogu ja mõnda muud koos g ++ -ga, tuleb soovitud funktsioonide tagamiseks teha teegid uuesti kokku.

Tekkinud koostaja kvaliteediga on GCC, mis on GNU kompilaatorikogu, selle ülesande täitmisel eriti hea. Natiivkompilaatorid töötavad kohati siiski paremini. Inteli kompilaatoritel võib olla põhjalikke optimeerimisi, mida GCC-s tuleb veel korrata.

Mõlemad kompilaatorid on üldiselt praeguste standardite järgi uued, isegi kui standardkeele ja kompilaatori toetatava keele vahel on vähe erinevusi. Need standardid on (C ++ 98, C ++ 2003, C99). Vanem C89 tugi on saadaval mõlemas kompilaatoris ja eeldatavate vastuste mõistmine on ülioluline tagamaks, et kompilaator käivitub ootuspäraselt. Üldiselt näib, et GCC on keskendunud elu lihtsustamisele tänu laiendustele ja näpunäidetele, mida saab soovitud tulemuse saamiseks teha..

Kokkuvõte

C- ja C ++ -kompilaatori teekide rist ühilduvusega on probleeme.

C ++ programmid võivad töötada C-teekides, kuid see on platvormispetsiifiline.

CC-s koostatud teegi kasutamiseks tuleb kogu programm kompileerida CC-ga, mitte GCC-ga.
Kui teil on raamatukogu, mis on kompileeritud CC ja g ++, tuleb üks raamatukogudest uuesti kompileerida.

GCC teeb suurepärase töö kvaliteetsete sõlmede loomisel.

Nii CC kui ka GCC keelefunktsioonid on praeguste standarditega võrreldes suurepärased.