GCC i CC prevodilac

Anonim

GCC vs CC prevodilac

CC je naziv koji se dodjeljuje UNIX Compiler Commandu. Koristi se kao zadana naredba prevodioca za vaš operativni sustav i također je izvediva s istom naredbom. S druge strane, GCC je operativni sustav GNU Compiler. Na sustavima koji se pokreću na GNU i Linuxu, uobičajeno je da CC bude veza, tako da skripte mogu upotrijebiti zamjenske i lako kompilatore. Uočene su razlike u pogledu korištenja GNU zbirke prevoditelja i CC prevoditelja. Te se razlike obično mogu grupirati u dvije glavne skupine. Jedan od njih je specifičniji dok je druga grupa općenitija.

Razlike

Glavna razlika između dva se odnosi na C prevodioce i C + + prevodioce. C ++ prevoditelji ne prihvaćaju C + + programe, ali ne sastavljaju programe u C proizvoljno. To je uglavnom istina, iako je pokazano da je moguće napisati kodeks C jezika u podskupu koji C ++ može razumjeti čak i kada mnogi C programi nisu valjani C + + programi. S druge strane, C prevoditelji prihvaćaju C programe, ali odbacuju većinu C + + programa koji se izvode u njima. Razlog zbog kojeg se pojavljuje taj problem je da većina C + + programa izvodi konstrukte koji nisu dostupni u C.

Dostupne biblioteke za te programske jezike uglavnom ovise o jeziku. C + + programi mogu izvoditi na C knjižnicama, ali to je platforma specifična. S druge strane, C programi ne mogu koristiti C ++ knjižnice; stoga C ++ ima tendenciju da ima veću dostupnu knjižnu skupinu od C.

Na Solarisu objektni kod koji proizvodi zapovjednik prevoditelja nije ni na koji način kompatibilan s kodom koji proizvodi g ++ jer su to dva zasebna kompilera i njihove se konvencije razlikuju. Glavne razliite točke su rukovanje iznimkom i brisanje imena. Ipak, važno je napomenuti da je skupljanje imena važan kako bi se spriječilo međusobno povezivanje objekata. To zapravo ukazuje na činjenicu da upotreba knjižnice sastavljene u CC treba da se cijeli program sastavlja u CC. Također, ako trebate upotrijebiti knjižnicu sastavljenu s CC, a drugu s g ++, mora se izvršiti recompiliranje knjižnica kako bi se osigurala željena funkcionalnost.

U kvaliteti sastavljača koji se generira, GCC, što je GNU zbirka prevodioca, iznimno je dobar u ovom zadatku. Izvorni prevodioci međutim s vremena na vrijeme mogu raditi bolje. Može se reći da su Intelovi kompilatori temeljiti optimizmi koji se tek trebaju reproducirati u GCC-u.

Oba kompiliranja su sve u novije vrijeme prema postojećim standardima, iako postoje male razlike između jezika standarda i jezika kojeg prevoditelj podržava. Ti su standardi (C ++ 98, C ++ 2003, C99). Starija podrška za C89 dostupna je u oba kompilera i razumijevanje očekivanih odgovora od ključnog je značaja za osiguravanje da se prevodilac izvodi prema očekivanjima. Čini se da je sve u svemu fokusirano na olakšavanje života zbog proširenja i ugađanja koje se mogu učiniti kako bi dobili željeni rezultat.

Sažetak

Postoji problem s unakrsnim kompatibilnošću C i C + + programskih knjižnica.

C + + programi mogu izvoditi na C knjižnicama, ali to je platforma specifična.

Korištenje knjižnice sastavljene u CC zahtijeva da se cijeli program sastavlja s CC, a ne GCC. Ako imate knjižnicu sastavljenu u CC i g ++, jedna od knjižnica mora biti recompiled.

GCC čini čudesan posao u stvaranju kvalitetnih sklopova.

I CC i GCC u jezičnim značajkama su izvrsni u odnosu na trenutne standarde.