MSVC
微软出的,通常用于编译Windows应用
gcc
是GNU compiler collection的缩写,是一个编译器集合,包含很多语言的编译器(c,c++,Objective-c,Ada, Fortran, Java). 当你调用gcc时不一定是调用c/c++编译器,是gcc根据文件扩展名自动识别并调用对应编译器。
GCC/g++
gcc的 c++ 编译器
cc
是来自Unix的c语言编译器,是c compiler的缩写。
Linux下的cc是gcc的符号链接。可以通过$ls –l /usr/bin/cc来简单察看.而编译时看到的控制台输出CC则是一个指向gcc的变量,该变量是make程序的内建变量,就算你在Makefile中没有CC= ,该变量也会存在,并默认指向gcc。cc的符号链接和变量存在的意义在于源代码的移植性,可以方便的用gcc来编译老的用cc编译的unix软件,甚至连Makefile都不用改。而且也便于Linux程序在unix下编译。
clang
c家族的编译器,兼容gcc,MSVC,目前由苹果公司主导,据说是比gcc更模块化,生成的代码更加优化。
- 更快
 - 更小
 - 生成代码质量高
 - 功能更丰富(eg: 用于代码补全)
 
Tiny C Compiler
- 小
 - 快
 - 生成代码质量一般
 - 小众,长期不维护,可做学习只用
 
参考:
http://www.cnblogs.com/xiedan/archive/2009/10/25/1589462.html