如果你是高手,就不要看了 :)
经常会看到许多人问几乎相同的基础问题,这里根据自己的习惯做一些描述,这个帖子会慢慢根据大家的问题更新(希望可以坚持住 ^_^),希望对初学者有所帮助。
一、关于语言、编译器及系统
我们知道,在计算机里面进行程序设计至少需要掌握一种程序设计语言。常见的程序设计语言包括C/C++、ASM、BASIC、Delphi、Perl等,你随便根据兴趣去学习一种语言都可以实现程序设计这个目的,这些语言并没有谁比谁更好的问题(这是一个理解问题,实际上一些语言应该说比一些语言更先进,比如可以说C++比C更先进,但不能说谁比谁好,每一种语言都是优秀思想的结晶,我这样理解),只是它们的侧重点不同。比如,ASM、C比其他语言更接近系统的底层,使得它们适合做系统方面的程序设计、而用BASIC可以更快的设计应用程序等。作为网络程序设计我更喜欢C/C++语言,它有目标程序较小、运行速度快等优点,还包括习惯问题(所以,下面的描述中如果不特别说明,都以C/C++为例),当然选择什么语言进行程序设计是见仁见智的问题(你决定选择C/C++了吗?如果决定了,下面的的描述会更有针对性)。
我们选择好一种语言后,并编写好了程序代码,这么样才能让系统运行我们的程序呢?这就需要编译器了,编译器的作用就是把类似下面的源代码编译成系统可以识别并执行的代码:
#include <stdlib.h>
int main()
{
printf(“hello word.rn”);
return 0;
}
所有的语言都有自己的编译器,C语言的编译器有TC、BC等,C++语言的编译器有Visual C++、C++ Builder等。C和C++语言的关系是很密切的,C++语言是C语言的超集,而因为向下的兼容性,所以,如果你写的C源代码符合ANSI C标准,那么其在C和C++的编译器里面都可以编译,相反,C++的源代码只能在C++的编译器中编译。
那么编译器除了可以把源代码编译成可执行代码还有其他的作用吗?