Hi,
You are looking for clang, part of the LLVM project. Which compiler is better depends on who you ask. clang/LLVM has cleaner internals, but gcc is better at OpenMP for example.
For the gcc language: gcc has tons of non-standard C extensions and Linux makes heavy use of them. Linux's problem is that it's basically impossible to compile with any other C compiler besides gcc, whereas the BSDs and MINIX 3 are written in standard C and can use any decent C compiler. Linux's fate is tied with gcc's, at least for the time being.
There are also other C compilers around, like pcc for example.