Razlika između GCC-a i CC Compilera

GCC vs CC Compiler

CC je naziv dat za naredbu UNIX Compiler Command. Koristi se kao zadana naredba prevoditelja za vaš operativni sustav i također se može izvršiti istom naredbom. GCC, s druge strane, je GNU Compiler operativni sustav. U sustavima koji rade na GNU i Linuxu uobičajeno je da se CC smatra vezom tako da skripte mogu međusobno i jednostavno koristiti bilo koji prevoditelj. Postoje različite razlike što se tiče upotrebe kolekcije GNU prevoditelja i CC prevodnika. Te se razlike mogu općenito grupirati u dvije glavne skupine. Jedna od njih je specifičnija, a druga generička.

Razlike

Glavna razlika između dva posla s C prevoditeljima i C ++ prevodiocima. Kompajleri za C ++ prihvaćaju programe C ++, ali programe ne sastavljaju u C proizvoljno. To je općenito istina, iako je pokazano da je moguće napisati kôd jezika C u podskupini, koji se C ++ može dobro razumjeti čak i kad mnogi C programi nisu valjani C ++ programi. S druge strane, C prevoditelji prihvaćaju C programe, ali odbacuju većinu C ++ programa koji se u njima pokreću. Razlog zbog kojeg se pojavljuje ovaj problem je u tome što većina C ++ programa izvodi konstrukcije koji nisu dostupni na C-u.

Dostupne knjižnice za ove programske jezike u velikoj mjeri ovise o jeziku. C ++ programi mogu se izvoditi u C knjižnicama, ali to je specifično za platformu. C programi s druge strane ne mogu koristiti C ++ knjižnice; stoga C ++ ima na raspolaganju veći skup knjižnica od C.

U Solarisu, objektni kôd koji proizvodi naredba prevoditelja nije ni na koji način kompatibilan s kodom proizvedenim g ++ jer su to dva odvojena sastavljača i njihove će se konvencije razlikovati. Glavne točke koje se razlikuju su rukovanje iznimkama i rukovanje imenima. Važno je napomenuti da je upravljanje s imenima važno kako bi se spriječilo povezivanje kompatibilnih objekata. To zapravo ukazuje na činjenicu da uporaba knjižnice sastavljene u CC-u zahtijeva da se cijeli program sastavi u CC-u. Također, ako trebate koristiti knjižnicu sastavljenu s CC-om i drugu s g ++, mora se izvršiti repilacija knjižnica kako bi se osigurala željena funkcionalnost.

U kvaliteti montiranog montirača, GCC, koji je GNU-ova zbirka sakupljača, izuzetno je dobar u ovom zadatku. Nativni prevoditelji ipak rade bolje s vremena na vrijeme. Može se reći da Intel-ovi prevoditelji imaju temeljite optimizacije koje tek treba ponoviti u GCC-u.

Oba sastavljača su potpuno nova prema trenutnim standardima, iako postoje male razlike između jezika standarda i jezika koji prevoditelj podržava. Ti su standardi (C ++ 98, C ++ 2003, C99). Starija podrška za C89 dostupna je u oba prevoditelja, a razumijevanje očekivanih odgovora presudno je za osiguravanje da se prevodilac pojavljuje kako se i očekivalo. Sve u svemu, čini se da je GCC usmjeren na lakši život zbog ekstenzija i ugađanja koji se mogu učiniti kako bi se postigao željeni rezultat.

Sažetak

Postoji problem s unakrsnom kompatibilnošću knjižnica prevodilaca C i C ++.

C ++ programi mogu se izvoditi u C knjižnicama, ali to je specifično za platformu.

Za korištenje knjižnice sastavljene u CC-u potrebno je sastaviti cijeli program s CC-om, a ne GCC.
Ako imate knjižnicu sastavljenu u CC i g ++, jedna od knjižnica mora se ponovno kompilirati.

GCC obavlja izvrstan posao u stvaranju kvalitetnih sklopova.

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