GCC vs CC Compiler
CC is the name given to the UNIX Compiler Command. It is used as the default compiler command for your operating system and also is executable with the same command. GCC, on the other hand, is the GNU Compiler operating system. On systems that run on GNU and Linux, it is common to find the CC being a link so that the scripts can use either compiler interchangeably and easily. There are various differences observed as regards to using the GNU compiler collection and the CC compiler. These differences can generally be grouped into two main groups. One of these is more specific while the other group is more generic.
Differences
The main difference between the two deals with C compilers and C++ compilers. The C++ compilers do accept C++ programs but do not compile programs in C arbitrarily. This is generally true, although it has been shown that it is possible to write a C language code in a subset that can be understood well by C++ even when many C programs are not valid C++ programs. On the other hand, C compilers accept C programs but reject most of the C++ programs that run in them. The reason that this problem arises is that most C++ programs run constructs that are not available in C.
The available libraries for these program languages largely depend on the language. C++ programs can perform on C libraries, but this is platform specific. C programs on the other hand cannot use C++ libraries; thus C++ tends to have a larger library set available than C.
On Solaris, the object code that is produced by the compiler command is not in any way compatible with the code produced by the g++ as these are two separate compilers and their conventions will differ. The main differing points are exception handling and mangling of names. It is however important to note that name mangling is important to prevent compatible of objects from being linked together. This in effect points to the fact that use of a library compiled in CC needs that the entire program be compiled in CC. Also, if you need to use a library compiled with CC and another with g++, a recompilation of libraries must be done to ensure the desired functionality.
In quality of assembler that is generated, GCC, which is the GNU Compiler Collection, is extremely good at this task. Native compilers do however work better at times. Intel compilers can be said to have thorough optimizations that are yet to be replicated in GCC.
Both compilers are all in all new to the current standards, even though there are tiny differences between standards language and the language that the compiler supports. These standards are (C++98, C++2003, C99). Older C89 support is available in both compilers and an understanding of the responses expected is crucial to ensure that the compiler rolls out as expected. All in all GCC seems to be focused at making life easier due to extensions and tweaks that can be done to it to get the desired result.
Summary
There is a problem with cross compatibility of C and C++ compiler libraries.
C++ programs can perform on C libraries but this is platform specific.
To use a library composed in CC requires the whole program to be compiled with CC and not GCC.
If you have a library compiled in CC and g++, one of the libraries must be recompiled.
GCC does a marvelous job in creating quality assemblies.
Both CC and GCC in language features are great in relation to current standards.