GCC家族有
Cygwin
Mingw32
DJGPP
Dev-C++(Mingw32)
还有正宗的GNU GCC 2.95.5~3.0.0.4版本
MS家族有
MSC 5.0、6.0、7.0
MSQC 1.0、2.5
MSVC 1.0、4.二、6.0、7.0
Borland家族有
TC 1.0、2.0
TC++ 1.0一、3.0
BC 3.0、3.一、4.0、4.五、5.0、5.02
BCB 3.0、5.0、6.0
其它有
Intel C/C++ 5.0
Watcom C/C++ 11.0、11.0c
VectorC 1.3.3
IBM VisualAge for C++
DigitalMars C/C++
KAI C/C++ 4.03f for RedHat 7.2
Lcc4.1
LCC-WIN32 2001-09-25~2002-04-28日版
Small C
CC386
Pacific C
另外还有C的解释器
Quincy
Eic
CINT
上面提到的编译器/解释器,大部分我都使用过。如今固定使用VC7.0 Cygwin Mingw32 VectorC和LCC-WIN32这五种编译器。
在GCC家族中GNU GCC是根本,其它的编译器版本都是从它导出的。其中,Cygwin和Mingw32都是WIN32平台下的编译器,DJGPP是DOS下的32位编译器。你们所熟知的DEV-C++充其量只是GCC的一个外壳,它所自带的编译器就是Mingw32的一个版本。这些GCC的版本中,Cygwin是最大的,它与其说是一个编译器,倒不如说是一套编程工具。它不只有编译器,还有其它不少的工具。其实,它就是一个UNIX系统在WIN32平台上的实现。实现了大多经常使用的UNIX工具,最近的版本中连Apache这样的“工具”都集成进来的。不过,Cygwin虽然功能强大,但它却不是很易用(和UNIX类似,熟悉UNIX的人用它能够很快上手),由于太多其它的工具分散了人们的注意力。相比之下Mingw32就要好用得多,它只有最基本的几个编程工具(只惋惜它不自带GDB)。GCC中并不仅是C/C++编译器,其中还有不少其它的编译器如JAVA,Fortran,ADA等。它是一个编译器集合,不过有些编译器只能在UNIX系统上用。MS家族的编译器就不用说了,你们对它们都很熟悉。VC 7.0(VC.NET)是它的最新产品。Borland家族也不用说,你们也是耳熟能详。最近它才推出了BCB 6.0。
其它的编译器如:Intel C/C++你们一看名称就知道是Intel的东西,它和VC6彻底兼容,不过要挂在VC6下才能用。Watcom C/C++是早先编译器四国大战中的一员,本来是很不错的东西,惋惜战略不对,如今已不见声息了。却是以它为基础的一个OpenWatcom如今还在奋战。VectorC是我近日才发现的一个好东东,它是个纯C的编译器。IBM的VisualAge for C++本来是IBM想用来淌C++编译器这片浑水的东西,不过IBM的战略改了,它就被放弃了。DigitalMars C/C++的前身的Symantec C++(它也是编译器四国大战中的一员),不过如今Symantec不作了,因而它的做者就把它改为了DigitalMars C/C++开放给你们使用。以上这些都是WIN32平台上的东西。KAI C/C++是个很强大的C/C++编译器,它是个多平台的编译器。不过如今被INTEL收购了,已经中止开发了。Lcc4.1是个纯C的编译器它是开放源代码的。不过不怎么好用。LCC-WIN32是一个在LCC基础上开发的C语言的集成开发环境,很好用,并且有很详细的资料,FREE!Pacific C是一个纯DOS的C的集成开发环境,就很少说了。Small C CC386都是开放源代码的编译器,它们都很简单,应用来给你们学习编译器的。Quincy Eic CINT都是C的解释器,是用来让你们学习C语言的其中CINT的功能很强大,还支持一些C++的特性。
固然还有不少其它的编译器,这里我给出的编译器都是能够在WIN32或DOS平台上用的(除KAI外)。UNIX平台上的编译器仍是以GNU的为主,其它的我就不是很清楚了。
在以上的编译器中,最特别的就是VectorC这个东西只支持纯C。但它却号称是最快的编译器,不过通过个人试验,它的确在有些状况下强过其它编译器不少!并且它还有个交互式的优化器,可让你直接看到C代码对映的汇编代码。Cygwin和Mingw32为一母所生,其运行效果相差不大。它们生成的代码效率都很不错,编译的速度也很快,最值得一提的是它们对C++的特性的支持算是全部编译器中最彻底的,并且它们还支持C99的大部分特性。这一点非常不错!你们对MS的VC已经很熟悉了,本不用我多说。不过在它的最新的产品VC7.0中,有很大的改进。它对C++的特性的支持比6.0有了很大的提升,是我所用的编译器中是仅次于GCC的。并且它编译出的程序,运行速度很快!仅有少数时候次于VectorC与GCC,其它状况都是最快的!其平均运行速度是最快的。对Borland的产品我也无需多说。它的TC2.0与BC3.1都是我最喜欢的东西。但是如今的BCB却大不如前了,编译的速度和VC6 同样慢!IDE还有较多的BUG。最使人想不通的是它生成的代码的运行速度很慢,比LCC-WIN32还慢!它惟一值得一提的就是它的RAD作的比MS的好。Intel的编译器你们可能不熟,它太贵了!还要有VC的支持,很不划算,并且编译速度比VC6还慢。不过它的代码质量很不错。 DigitalMars C/C++没有什么亮点,编译速度较快,代码执行速度适中,对C++特性支持还算不错。LCC-WIN32是个很不错的集成开发环境,它只支持纯C。它的编译速度极快!代码执行速度较慢。不过它的最大亮点在于它的IDE,在全部的FREE编程工具中,它的IDE是最专业的,有很强大的代码分析,管理功能。并且它提供了大量的编程资料。
我曾对一些编译器的代码执行效率作过一些测试,如下是概况:
1. VectorC、VC 7.0 (极快)
2. Intel C/C++、VC 6.0、GCC (很快)
3. DigitalMars C/C++ (通常)
4. LCC-WIN3二、BCB、BC5.02 (较慢)
固然,我所作的测试比较片面。不过在很大程度上已能反映其大概情况。