3.3 编写一个最简单的程序
下面编写一个简单的小程序。以后不管编写什么程序,最开始都有一个固定的框架,如下所示:
# include <stdio.h> int main(void) { return 0; }
在编写任何程序时,都先将该框架写出来,然后再在里面编写其他代码。那么这个框架是什么意思呢?下面先形象、浅显地介绍一下,因为要讲明白需要用到后面的很多知识,所以稍后再一个个详细地解释。
第一句:# include <stdio.h>
在C语言中,凡是以“#”开头的都叫预处理指令。所谓“预”即“提前、先”的意思。所以“预处理”就是“提前处理”或者“先处理”的意思。
通过VC++ 6.0这个软件,我们可以输入一些代码,而这些代码坦白讲它们全是字符,又叫文本信息。也就是说我们编写任何一个程序,与在记事本里书写没任何区别,全部都只是些字母。那么如何使这些字母运行起来呢?这时就需要借助VC++ 6.0这个软件了。在记事本中是无法运行程序的。那么为什么在VC++中能运行而在记事本中就无法运行呢?原因之一就是要运行程序,还需要VC++中的一些功能,而这些功能记事本是无法提供的。但是VC++很“忠诚”,它只“听”操作系统的话,那么你必须让操作系统给它“下命令”。而该命令就具备此功能。
那么操作系统是怎么“下命令”的呢?首先要看VC++将这些功能“藏”哪了。对于后面写的大多数程序需要的功能,VC++都将它们“藏”在了stdio.h这个文件中。.h是这个文件的后缀名。那么怎么命令VC++将这个文件给“交”出来呢?就是通过include命令。这是一个英文单词,是“包含”的意思,大家应该都认识。在include后面加上stdio.h这个文件,就表示将这个文件包含进来。为了将include和stdio.h区分开,它们之间必须要加空格,并且用“<>”将stdio.h括起来。
综上所述,通过第一句“预处理”,就让VC++在真正进行程序处理之前先将程序要用到的文件给交出来。
第二句:int main(void)
这句话是什么意思呢?等到学习函数的时候就会发现,这句话的意思实际上就是定义一个函数。编程所写的代码都是写在这个函数中的,所以我们所说的编程,实际上就是写一个函数。
我们先来看main。main是这个函数的名字,这个名字是固定的,不可以改成其他名字。main也是一个英文单词,意思是“主要的”,所以这个函数又叫主函数。任何一个程序中都有且只有一个主函数main。所有程序在执行时都开始于主函数main,也都结束于主函数main。
主函数main执行完后要返回一个值。int就是返回的这个值的类型。它是英文单词integer的缩写,integer是“整数”的意思,所以int就表示整型。main后面有一个括号,这个括号中放的是要传给主函数main的参数。而我们一般都不会给main函数传参数,所以里面就写“void”。void也是一个英文单词,意思是“空”,就表示传给主函数main的参数为空,即什么都不传给main函数。
主函数main下面有两个大括号。这两个大括号就像耳朵一样,一个朝左一个朝右。这两个大括号是一对,漏掉一个都不行。所以在编程的时候,无论是输入小括号“()”,还是输入大括号“{}”,都要成对地输入,然后再在它们中间写代码,这样就不会漏掉了。main下面的两个大括号括起来的部分叫“函数体”,表示其间代码都属于main。
第三句:return 0;
我们前面说主函数main有一个返回值,这个返回值的类型为int型。那么这个返回值到底是什么呢?就是这个0。return也是一个英文单词,是“返回”的意思。“return 0; ”即表示将0返回给主函数main。那么这句到底有什么用处呢?为什么要将0返回给main呢?这是为了告诉main程序执行完了。main函数收到一个“0”之后就知道程序结束了,不用再往下执行了。
那么大家观察一下这一句同前面两句有什么不一样呢?最后多了一个分号。分号是C语言中非常重要的一个标记。分号有什么作用呢?在C语言中,加了分号的才是一条语句,语句是以分号结尾的。但是在C语言中并不只是语句,比如前面两句就不是语句,所以它们后面就没有分号。这一点一定要注意。
以上就是对这个框架的解释,其实就是几个英文单词。大家能理解多少呢?不要求读者能完全理解,因为后面都会非常详细地讲述。
此外还需要跟读者说明的是,在很多书中你们可能会看到一些其他写法,如省略main前面的int、省略main后面的void、main可以无返回值等。那样写虽然没有错误,但都是不规范的写法。
下面使用这个框架来写一个简单的程序:
# include <stdio.h> int main(void) { printf("欢迎大家学习C语言!\n"); return 0; }
在这个框架中就写了一句话:
printf("欢迎大家学习C语言!\n");
这是最简单的一个程序。printf也是一个函数,通过这个函数就可以将“欢迎大家学习C语言!”这句话显示到屏幕上。