Differenza tra GCC e CC Compiler

GCC vs CC Compiler

CC è il nome assegnato al comando del compilatore UNIX. Viene utilizzato come comando di compilazione predefinito per il sistema operativo ed è anche eseguibile con lo stesso comando. GCC, d'altra parte, è il sistema operativo GNU Compiler. Sui sistemi che girano su GNU e Linux, è normale che CC sia un collegamento in modo che gli script possano usare il compilatore in modo intercambiabile e semplice. Ci sono varie differenze osservate riguardo all'uso della raccolta del compilatore GNU e del compilatore CC. Queste differenze possono generalmente essere raggruppate in due gruppi principali. Uno di questi è più specifico mentre l'altro gruppo è più generico.

differenze

La principale differenza tra i due accordi con compilatori C e compilatori C ++. I compilatori C ++ accettano programmi C ++ ma non compilano arbitrariamente programmi in C. Questo è generalmente vero, anche se è stato dimostrato che è possibile scrivere un codice di linguaggio C in un sottoinsieme che può essere compreso bene dal C ++ anche quando molti programmi C non sono programmi C ++ validi. D'altra parte, i compilatori C accettano programmi C ma rifiutano la maggior parte dei programmi C ++ che li eseguono. La ragione per cui questo problema si pone è che la maggior parte dei programmi C ++ esegue i costrutti che non sono disponibili in C.

Le librerie disponibili per questi linguaggi di programmazione dipendono in gran parte dalla lingua. I programmi C ++ possono essere eseguiti su librerie C, ma questo è specifico per la piattaforma. I programmi C d'altra parte non possono usare le librerie C ++; quindi C ++ tende ad avere un set di librerie più grande disponibile di C.

Su Solaris, il codice oggetto prodotto dal comando compiler non è in alcun modo compatibile con il codice prodotto da g ++ in quanto si tratta di due compilatori separati e le loro convenzioni saranno diverse. I principali punti di differenza sono la gestione delle eccezioni e la manipolazione dei nomi. È tuttavia importante notare che il nome mangling è importante per impedire che gli oggetti compatibili siano collegati tra loro. Questo in effetti mette in evidenza il fatto che l'uso di una biblioteca compilata in CC richiede che l'intero programma sia compilato in CC. Inoltre, se è necessario utilizzare una libreria compilata con CC e un'altra con g ++, è necessario eseguire una ricompilazione delle librerie per garantire la funzionalità desiderata.

Nella qualità dell'assembler che viene generato, GCC, che è la raccolta del compilatore GNU, è estremamente bravo in questo compito. I compilatori nativi funzionano comunque meglio a volte. Si può dire che i compilatori Intel abbiano ottimizzazioni approfondite che devono ancora essere replicate in GCC.

Entrambi i compilatori sono del tutto nuovi rispetto agli standard attuali, anche se ci sono piccole differenze tra il linguaggio degli standard e il linguaggio supportato dal compilatore. Questi standard sono (C ++ 98, C ++ 2003, C99). Il supporto C89 meno recente è disponibile in entrambi i compilatori e la comprensione delle risposte previste è fondamentale per garantire che il compilatore venga implementato come previsto. Tutto sommato GCC sembra focalizzato sul rendere la vita più facile a causa di estensioni e ritocchi che possono essere fatti per ottenere il risultato desiderato.

Sommario

C'è un problema con la compatibilità incrociata delle librerie del compilatore C e C ++.

I programmi C ++ possono essere eseguiti su librerie C, ma questo è specifico della piattaforma.

Per utilizzare una libreria composta in CC, è necessario compilare l'intero programma con CC e non con GCC.
Se hai una libreria compilata in CC e g ++, una delle librerie deve essere ricompilata.

GCC svolge un lavoro meraviglioso nella creazione di assembly di qualità.

Sia CC che GCC nelle funzionalità linguistiche sono eccellenti in relazione agli standard attuali.