Разлика между GCC и CC Compiler

GCC срещу CC Compiler

CC е името, дадено на UNIX Compiler Command. Той се използва като команда по подразбиране на компилатора за вашата операционна система и също така е изпълним със същата команда. GCC, от друга страна, е операционната система GNU Compiler. В системите, работещи на GNU и Linux, често се среща CC като връзка, така че скриптовете да могат да използват или компилатор взаимозаменяемо и лесно. Наблюдават се различни разлики по отношение на използването на колекцията на компилатора GNU и компилатора CC. Тези разлики обикновено могат да бъдат групирани в две основни групи. Едната от тях е по-конкретна, докато другата група е по-обща.

Разлики



Основната разлика между двете сделки е със C компилатори и C ++ компилатори. Компилаторите на C ++ приемат програми на C ++, но не компилират програми в C произволно. Това обикновено е вярно, въпреки че е доказано, че е възможно да се напише език Cкодв подмножество, което може да се разбере добре от C ++, дори когато много C програми не са валидни C ++ програми. От друга страна, компилаторите на C приемат програми на C, но отхвърлят повечето програми на C ++, които се изпълняват в тях. Причината, поради която възниква този проблем, е, че повечето програми на C ++ изпълняват конструкции, които не са налични в C.

Наличните библиотеки за тези програмни езици до голяма степен зависят от езика. Програмите на C ++ могат да изпълняват C библиотеки, но това е специфично за платформата. C програмите, от друга страна, не могат да използват библиотеки C ++; по този начин C ++ има тенденция да разполага с по-голям набор от библиотеки от C.

На Solaris обектният код, който се произвежда от командата на компилатора, по никакъв начин не е съвместим с кода, създаден от g ++, тъй като това са два отделни компилатора и техните конвенции ще се различават. Основните различия са обработката на изключения и манипулирането на имената. Важно е обаче да се отбележи, че манипулирането на имена е важно, за да се предотврати свързването на съвместими обекти. Това всъщност сочи към факта, че използването на библиотека, компилирана в CC, изисква цялата програма да бъде компилирана в CC. Също така, ако трябва да използвате библиотека, компилирана с CC и друга с g ++, трябва да се направи повторна компилация на библиотеки, за да се осигури желаната функционалност.

В качеството на генерирания асемблер, GCC, който е GNU Compiler Collection, е изключително добър в тази задача. Родните компилатори обаче работят понякога по-добре. Може да се каже, че компилаторите на Intel имат цялостни оптимизации, които тепърва ще бъдат репликирани в GCC.

И двата компилатора са изцяло нови за настоящите стандарти, въпреки че има малки разлики между езика на стандартите и езика, който компилаторът поддържа. Тези стандарти са (C ++ 98, C ++ 2003, C99). По-старата поддръжка за C89 е налична и в двата компилатора и разбирането на очакваните отговори е от решаващо значение, за да се гарантира, че компилаторът се разпространява според очакванията. Като цяло GCC изглежда фокусиран върху улесняването на живота поради разширения и ощипвания, които могат да се направят, за да се получи желаният резултат.

Обобщение

Има проблем с кръстосаната съвместимост на библиотеките на компилатора C и C ++.

Програмите на C ++ могат да изпълняват C библиотеки, но това е специфично за платформата.

За да използвате библиотека, съставена в CC, цялата програма трябва да бъде компилирана с CC, а не с GCC.
Ако имате библиотека, компилирана в CC и g ++, една от библиотеките трябва да бъде прекомпилирана.

GCC върши чудесна работа при създаването на качествени сглобки.

Както CC, така и GCC по езикови характеристики са страхотни по отношение на настоящите стандарти.