📄 51.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="Author" content="wdg">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>网上学堂 --> C语言编程宝典之一 -->函数 </title>
</head>
<body>
<p> </p>
<div align="center"><center>
<table border="1" cellpadding="4" width="640"
bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF">
<tr>
<td bgcolor="#FFE6B0" bordercolor="#8080FF" class="p9"><font
color="#BB0000">导航条:--></font> <a
href="../../index.html">网上学堂</a> --> <a
href="../tcindex.htm"><font face="宋体">C</font>语言编程宝典之一</a>
-->函数 </td>
</tr>
<tr>
<td bordercolor="#8080FF" class="p9"> <p>
C程序是由一组或是变量或是函数的外部对象组成的。
函数是一个自我包含的 <br>
完成一定相关功能的执行代码段。我们可以把函数看成一个"黑盒子",
你只要将数 <br>
据送进去就能得到结果,
而函数内部究竟是如何工作的的,
外部程序是不知道的。 <br>
外部程序所知道的仅限于输入给函数什么以及函数输出什么。函数提供了编制程序
<br>
的手段,
使之容易读、写、理解、排除错误、修改和维护。
<br>
C程序中函数的数目实际上是不限的,
如果说有什么限制的话, 那就是, 一个C <br>
程序中必须至少有一个函数,
而且其中必须有一个并且仅有一个以main为名,
这个 <br>
函数称为主函数,
整个程序从这个主函数开始执行。 <br>
C
语言程序鼓励和提倡人们把一个大问题划分成一个个子问题,
对应于解决一 <br>
个子问题编制一个函数, 因此, C
语言程序一般是由大量的小函数而不是由少量大
<br>
函数构成的, 即所谓"小函数构成大程序"。这样的好处是让各部分相互充分独立,
<br>
并且任务单一。因而这些充分独立的小模块也可以作为一种固定规格的小"构件",
<br>
用来构成新的大程序。 <br>
C语言的一个主要特点是可以建立库函数。Turbo
C2.0提供的运行程序库有400 <br>
多个函数, 每个函数都完成一定的功能,
可由用户随意调用。这些函数总的分为输 <br>
入输出函数、数学函数、字符串和内存函数、与BIOS和DOS有关的函数、
字符屏幕 <br>
和图形功能函数、过程控制函数、目录函数等。对这些库函数应熟悉其功能,
只有 <br>
这样才可省去很多不必要的工作。 <br>
本教程后半部分专门介绍Turbo
C2.0的库函数, 并对每个函数都给出例程, 读 <br>
者可以将自已需要的部分以块的方式定义,
然后将此块写入文件, 这样就可以在进 <br>
入Turbo C2.0集成开发环境后, 直接调用此程序,
连接, 运行, 观察结果, 以加深 <br>
对该函数的理解。 <br>
用户编制Turbo C语言源程序,
就是利用Turbo C的库函数。可以把所有使用的
<br>
库函数放在一个庞大的主函数里,
也可以按不同功能设计成一个个用户函数而被其
<br>
它函数调用。Turbo C2.0建议用户使用后者,
当用户编制了一些较常用的函数时, <br>
只要将其存在函数库里,
在以后的编程中可被方便的调用而不需要再去编译它们。
<br>
连接时将会自动从相应的库中装配成所需程序。
</p>
<p> 1. 函数的说明与定义 <br>
Turbo C2.0中所有函数与变量一样在使用之前必须说明。所谓说明是指说明函
<br>
数是什么类型的函数,
一般库函数的说明都包含在相应的头文件<*.h>中,
例如标 <br>
准输入输出函数包含在stdio.h中,
非标准输入输出函数包含在io.h中,
以后在使 <br>
用库函数时必须先知道该函数包含在什么样的头文件中,
在程序的开头用#include <br>
<*.h>或#include"*.h"说明。只有这样程序在编译,
连接时Turbo C 才知道它是提 <br>
供的库函数, 否则,
将认为是用户自己编写的函数而不能装配。
</p>
<p> 1.1 函数说明 </p>
<p> 1. 经典方式 <br>
其形式为: 函数类型 函数名();
<br>
2. ANSI 规定方式 <br>
其形式为: 函数类型 函数名(数据类型
形式参数, 数据类型 形式 <br>
参数, ......); <br>
其中:
函数类型是该函数返回值的数据类型,
可以是以前介绍的整型(int), <br>
长整型(long), 字符型(char), 单浮点型(float),
双浮点型(double)以及无值型 <br>
(void), 也可以是指针,
包括结构指针。无值型表示函数没有返回值。
<br>
函数名为Turbo C2.0的标识符,
小括号中的内容为该函数的形式参数说明。可
<br>
以只有数据类型而没有形式参数,
也可以两者都有。对于经典的函数说明没有参数
<br>
信息。如: <br>
int putlll(int x,int y,int z,int
color,char *p)/*说明一个整型函数*/ <br>
char *name(void);
/*说明一个字符串指什函数*/ <br>
void student(int n, char *str);
/*说明一个不返回值的函数*/ <br>
float calculate();
/*说明一个浮点型函数*/ <br>
注意:
如果一个函数没有说明就被调用,
编译程序并不认为出错, 而将此函数 <br>
默认为整型(int)函数。因此当一个函数返回其它类型,
又没有事先说明, 编译时 <br>
将会出错。 </p>
<p> 1.2 函数定义 <br>
<br>
函数定义就是确定该函数完成什么功能以及怎么运行,
相当于其它语言的一个 <br>
子程序。Turbo C2.0对函数的定义采用ANSI规定的方式。即:
<br>
函数类型
函数名(数据类型 形式参数; 数据类型
形式参数...) <br>
{ <br>
函数体; <br>
} <br>
其中函数类型和形式参数的数据类型为Turbo
C2.0的基本数据类型。函数体为 <br>
Turbo C2.0提供的库函数和语句以及其它用户自定义函数调用语句的组合,
并包括 <br>
在一对花括号"{"和"}"中。 <br>
需要指出的是一个程序必须有一个主函数,
其它用户定义的子函数可以是任意 <br>
多个, 这些函数的位置也没有什么限制,
可以在main()函数前, 也可以在其后。 <br>
Turbo C2.0将所有函数都被认为是全局性的。而且是外部的,
即可以被另一个文件 <br>
中的任何一个函数调用。 </p>
<p> 2 函数的调用 </p>
<p> 2.1 函数的简单调用 <br>
Turbo C2.0调用函数时直接使用函数名和实参的方法,
也就是将要赋给被调用 <br>
函数的参量,
按该函数说明的参数形式传递过去,
然后进入子函数运行, 运行结束 <br>
后再按子函数规定的数据类型返回一个值给调用函数。使用Turbo
C2.0的库函数就 <br>
是函数简单调用的方法。举例说明如下: <br>
例1: <br>
#include<stdio.h> <br>
int maxmum(int x, int y, int z);
/*说明一个用户自定义函数*/ <br>
int main() <br>
{ <br>
int i, j, k; <br>
printf("i, j, k=?\n"); <br>
scanf("%4d%4d%4d", &i, &j, &k); <br>
maxmum(i, j, k); <br>
getch(); <br>
return 0; <br>
} <br>
<br>
maxmum(int x, int y, int z) <br>
{ <br>
int max; <br>
max=x>y?x:y; <br>
max=max>z?max:z; <br>
printf("The maxmum value of the 3 data is
%d\n", max); <br>
} </p>
<p> 2.2 函数参数传递 <br>
<br>
一、调用函数向被调用函数以形式参数传递
<br>
用户编写的函数一般在对其说明和定义时就规定了形式参数类型,
因此调用这 <br>
些函数时参量必须与子函数中形式参数的数据类型、顺序和数量完全相同,
否则在 <br>
调用中将会出错, 得到意想不到的结果。 <br>
注意: <br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -