函数也可以有名片,在程序中我们称为函数的“声明”。 下面的代码演示了什么叫函数的“声明”,及它所起的作用: //函数的声明 void Xiuli(; XiuliDianshio 虽然函数还在后面,但 代码可以看到前面的函 数声明,所以可以调用 函数 iul iDi ansh void XiuliDianshio 第三种:使用头文件 当我们手里有了电视修理工的名片,有了冰箱修理工的名片,有了电脑修理工的名 片……名片多了,我们可以将名片整理到一个名片夹。这样做至少有两个好处 其一:便于管理。家里任何电器坏了,只需找“家用电器修理工名片”的名片夹即可。 其二:便于多人共用,比如隔壁家想找一个电视修理工,只需上你家借名片夹即可。 C,C++中,类似“名片夹”功能的文件,称为“头文件”。头文件的扩展名为.h(head)。 头文件是放置函数声明的好地方。如何写函数声明下面再说,现在要明白,“函数声明” 就是给编译器看的函数说明,或曰函数的“自我介绍”。至于为什么叫“头”文件呢?是 因为它总是要在程序代码文件的开头。就你我们在交谈时,开头总是大家各作一番介绍一 样。(该说法未经证明,仅供参考:) 说千道万,不如先简单地看一眼真实的头文件吧。 启动C++ Builder。然后新建一个控制台应用工程。在CB6里,新建控制台工程在File New|Others去找,别忘了 (CB6启动为什么这么慢啊!我且先上趟洗手间)
函数也可以有名片,在程序中我们称为函数的“声明”。 下面的代码演示了什么叫函数的“声明”,及它所起的作用: 第三种:使用头文件 当我们手里有了电视修理工的名片,有了冰箱修理工的名片,有了电脑修理工的名 片……名片多了,我们可以将名片整理到一个名片夹。这样做至少有两个好处: 其一:便于管理。家里任何电器坏了,只需找“家用电器修理工名片”的名片夹即可。 其二:便于多人共用,比如隔壁家想找一个电视修理工,只需上你家借名片夹即可。 C,C++中,类似“名片夹”功能的文件,称为“头文件”。头文件的扩展名为 .h(head)。 头文件是放置函数声明的好地方。如何写函数声明下面再说,现在要明白,“函数声明” 就是给编译器看的函数说明,或曰函数的“自我介绍”。至于为什么叫“头”文件呢?是 因为它总是要在程序代码文件的开头。就你我们在交谈时,开头总是大家各作一番介绍一 样。(该说法未经证明,仅供参考:) 说千道万,不如先简单地看一眼真实的头文件吧。 启动 C++ Builder。然后新建一个控制台应用工程。在 CB6 里,新建控制台工程在 File | New | Others 去找,别忘了。 (CB6 启动为什么这么慢啊!我且先上趟洗手间)
然后在代码窗口里,加上一行 #include <stdlib. h> 并且用鼠标在这一行点一下,现在代码窗口里的内空看起来如下: 自 Uni tl. cpp加入这一行,并将输入光标在“ stdl ib.h”上闪。 nit I cpp include<tdl.更> 并 pragma hdrstop 确保输入光标在单词“ stdlib.h”上面闪烁!现在按Ctrl+回车,CB将打开光标所在 处的文件 (如果你出现的是一个文件打开对话框,那有两点可能,其一是你没有把光标移到指定 的单词上,另一可能是你安装CB时没有选择“Ful”模式的安装,造成CB没有安装源文 件。) 以下就是打开的 stdlib.h头文件: 3 d: \borland\cbuilder\include\stdlib Unit1.cpp stdlib. h 这就是标准库文件 stdlib. h".里面写 Debu / stdlibh 看上去它是1987年的东西了 Alt+F12 Read onl Definitions for common types, variables, an Message (选择 ReadOnly可以把当前文件设置为只 / COpyright: 1987$ * /t氵 Revision:9.30,2.5氵吉/ 打开的文件是C++ Builder工程师为我们所写的头文件,请注意千万不要有意无意地改 动它!为了保险起见,通过右键菜单,选择 Read Only将当前文件设置为只读(如上面右图) 请大家将这当作一条准则来执行:不管出于什么原因打开CB提供的源文件,立即将其设置 为只读 好,我们说过“只看一眼”的。关于头文件,在讲完函数以后,还会专门讲到头文件在 工程中应用。现在重复头文件的目的:
然后在代码窗口里,加上一行: #include <stdlib.h> 并且用鼠标在这一行点一下,现在代码窗口里的内空看起来如下: 确保输入光标在单词“stdlib.h” 上面闪烁!现在按 Ctrl + 回车,CB 将打开光标所在 处的文件。 (如果你出现的是一个文件打开对话框,那有两点可能,其一是你没有把光标移到指定 的单词上,另一可能是你安装 CB 时没有选择“Full”模式的安装,造成 CB 没有安装源文 件。) 以下就是打开的 stdlib.h 头文件: (选择 ReadOnly 可以把当前文件设置为只 读) 打开的文件是 C++ Builder 工程师为我们所写的头文件,请注意千万不要有意无意地改 动它!为了保险起见,通过右键菜单,选择 Read Only 将当前文件设置为只读(如上面右图)。 请大家将这当作一条准则来执行:不管出于什么原因打开 CB 提供的源文件,立即将其设置 为只读。 好,我们说过“只看一眼”的。关于头文件,在讲完函数以后,还会专门讲到头文件在 工程中应用。现在重复头文件的目的:
函数可以统一在一个头文件中声明,代码中需要使用这些函数,只需通过“ include 语句包含这个头文件,就可以让编译器找到函数。 用一句大白话讲就是:要想用函数?请包含它所在的名片夹(头文件)。 函数的“声明”有时被称为函数的“原型”,比如在讲到编译过程时。当我们阅读其它 文章时,如果看到“函数原型”一说,希望大家也能明白。 12.23调用者必须传递给被调用者正确的参数 现在,我能找到修理工,而且他已经到我家。 “电视呢?”他说 “就是它”我指着家里的苏泊尔高压锅,“劳驾,把它修修,最近它总漏气。” “可是,我好象是来修理电视的?” “知道,现在你先修高压锅。” 好吧,我试试……先用电笔试试它哪里短路。” 显然我这是在胡搅蛮缠。电视修理工要开始干活,就得给他电视。给他一只高压锅他不 能开工。 函数也一样,函数的目的是实现某个特定功能,当我们调用它时,我们一般需要给它 些数据,这些数据可能是让它直接处理,也可能是辅助它实现具体的功能。 当然有些函数不需要任何外部数据,它就能完成任务。这也很好理解,修理工修理电视 是得有台电视,但叫一位歌手到家里随便哼几句歌,你就不用给他什么。 关键一句话:函数要不要外部传给它数据,要什么类型的数据,要多少数据,由函数本 身决定,而非调用者决定。本例中,电视修理工需要一台电视,这是他决定的,不能由请 他的人决定。 传给函数的数据,我们称为“参数”,英文为: parameter 基于此,我们发现所写的 XiuliDianshi(函数有很大的不足,那就是它没有参数。现 在我们假设有一种数据类型为“电视机”,嗯,就假设这种数据类型叫作: TDiansh
函数可以统一在一个头文件中声明,代码中需要使用这些函数,只需通过“include” 语句包含这个头文件,就可以让编译器找到函数。 用一句大白话讲就是:要想用函数?请包含它所在的名片夹(头文件)。 函数的“声明”有时被称为函数的“原型”,比如在讲到编译过程时。当我们阅读其它 文章时,如果看到“函数原型”一说,希望大家也能明白。 12.2.3 调用者必须传递给被调用者正确的参数 现在,我能找到修理工,而且他已经到我家。 “电视呢?”他说。 “就是它”我指着家里的苏泊尔高压锅,“劳驾,把它修修,最近它总漏气。” “可是,我好象是来修理电视的?” “知道,现在你先修高压锅。” “好吧,我试试……先用电笔试试它哪里短路。” 显然我这是在胡搅蛮缠。电视修理工要开始干活,就得给他电视。给他一只高压锅他不 能开工。 函数也一样,函数的目的是实现某个特定功能,当我们调用它时,我们一般需要给它一 些数据,这些数据可能是让它直接处理,也可能是辅助它实现具体的功能。 当然有些函数不需要任何外部数据,它就能完成任务。这也很好理解,修理工修理电视 是得有台电视,但叫一位歌手到家里随便哼几句歌,你就不用给他什么。 关键一句话:函数要不要外部传给它数据,要什么类型的数据,要多少数据,由函数本 身决定,而非调用者决定。本例中,电视修理工需要一台电视,这是他决定的,不能由请 他的人决定。 传给函数的数据,我们称为“参数”,英文为:parameter。 基于此,我们发现所写的 XiuliDianshi()函数有很大的不足,那就是它没有参数。现 在我们假设有一种数据类型为“电视机”,嗯,就假设这种数据类型叫作:TDianshi