2.2 程序的翻译和执行
假定已经正确安装了GCC,那么现在的任务就是用它来翻译源文件(程序),但在此之前假定你已经创建了源文件c0201.c。
以Linux为例,如图2-1所示,先用ls查看当前目录下的文件,以确保源文件c0201.c是存在的;然后,我们用gcc c0201.c来翻译这个源文件,如果源文件的内容没有问题(比如拼写错误),则翻译过程会悄无声息地完成。否则,将会在屏幕上出现一些消息(文本),告诉你哪里有什么性质的问题,这称为诊断消息。
图2-1 Linux平台上的翻译和执行过程
GCC在UNIX和Linux上的默认输出是a.out,所以在翻译后用ls查看当前目录下的文件,会发现多了一个a.out。此时,可以用./a.out来运行这个可执行文件。
GCC允许我们使用翻译选项-o来指定生成的可执行文件名,所以如图2-1中所示,我们可以使用gcc c0201.c -o c0201.out来指定要生成的可执行文件为c0201.out。
再以Windows为例,如图2-2所示,先用dir查看当前目录下的文件,以确保源文件c0201.c是存在的;然后,我们用gcc c0201.c来翻译这个源文件。
图2-2 Windows平台上的翻译和执行过程
GCC在Windows上的默认输出是a.exe,所以在翻译后用dir查看当前目录下的文件,会发现多了一个a.exe。此时,可以直接在命令行输入这个可执行文件的名字来运行它。同样地,可使用翻译选项-o来指定要生成的可执行文件名。
非常明显地,翻译后生成的可执行文件在运行时不会显示累加的结果,这是因为结果保存在变量sum中,除非你通过某种方法在屏幕上显示这个变量的内容,否则,它不可能自动显示出来。那么,怎样才能将这个结果显示出来呢?
这是一个既简单又复杂的问题,说它简单,是因为只需要添加两行代码就能解决;说它复杂,是因为要想解释清楚这两行代码的功能,以及其背后的原理,不是三言两语就能说清的,这需要对C语言有更多的了解才行。现在就讲这些内容,我怕你会头晕。
所以,本书的前六章以实现文本的打印输出为主线来组织,在完成这一任务的过程中介绍C语言及其他相关知识。在实现最终的打印输出之前,我们将用另外的方法来观察程序的执行过程和执行结果。