文档详情

第七章函数讲课.ppt

发布:2017-05-09约7.08千字共42页下载文档
文本预览下载声明
7.1 函 数 7.1.1 设计C语言程序就是设计函数 无论涉及的问题是复杂还是简单,规模是大 还是小,用C语言设计程序,任务只有一种,就是 编写函数,至少也要编写一个main函数。执行C程 序也就是执行相应的main函数。即从main函数的第 一个前花括号开始,依次执行后面的语句,直到最 后的后花括号为止。 模块化程序设计有一个原则:就是每个模块的 规模一般不能太大(有人认为要控制在40~60行之 间),以便于阅读,便于检查其中的错误。在C语 言中,减少主函数规模的一项基本措施就是通过调 用其它函数来实现主函数需要的一些功能。 7.1.2 函数结构   为了定义函数,必须首先了解函数的结构。一个C语言 函数的结构形式如下:    函数头    {    函数体    } 1. 函数头   一个函数的函数头的结构如下:    函数类型 函数名 (形式参数表列)   (1)函数类型。指定函数值的类型,即函数返回值的类 型。 (2)函数名。函数名必须采用合法的用户标识符。 (3)圆括号。在函数名后面的一对圆括号是“函数运算 符”,表示进行函数运算,函数运算符具有很高的运算优先级 别。 (4)形式参数表。形式参数表由写在一对圆括 号(函数运算符)中的一系列参数组成。每一个参数由 一个类型符和一个参数名组成。参数名也应当是合法 的用户关键字。函数可以没有参数,这时在函数运算 符内写一个“void”,也可以空允白。 2. 函数体 函数体由一些语句组成。主要是三种类型的语 句: ●声明语句:声明在函数中要使用的变量等程序 实体。 ●用来实现函数的功能的可执行语句:包括若干 流程控制语句和表达式语句。    ● return语句:使流程返回到调用处。 当函数执行到return语句时,将停止本函数的执 行,将流程送回到调用处。同时,编译器将函数分 为三类进行处理:   ●纯粹计算型函数,如sqrt( )和sin( )。这类函 数将返回一个计算结果。    ●完成一项具体工作,返回完成的成败。如 printf( )执行成功时,返回显示的字节数;失败时, 返回一个负整数。 ●只执行一个过程的函数,不产生返回值,其 类型应定义为void。 例  求一个整数的绝对值的函数 int absolutevalue (int x) { return (x=0?x:-x); } 3. 函数中变量的作用域   作用域指的是一个程序段中的代码的作用范围,在一个 函数中定义的变量只在本函数中有效,在其它函数中不能使 用这个变量,因此说,该变量的作用域是它所在的函数(从定 义该变量的行开始到函数末尾)。即使在不同的函数中定义了  同名的变量,它们数也指的是不同的变量。 例 #include stdio.h int func(int x) { x=5; return x+3; } 4. 空函数   空函数是一个不产生任何有效操作的函数,但 它却是一个合法的C函数。例如函数 void null (void){} 就是一个空函数。 空函数多使用在模块化程序的设计或测 试中。一般首先写好main函数,确定需要调 用的函数,然后逐步编写这些函数,如果在 有一些函数还未编写好时想对已有俩编好的 函数进行调试,可以先用空函数(函数名用将 来使用的实际函数名,如sort)放在程序中原 定的位置上,这样就可以调试程序的其它部 分,等以后再逐步补上。 7.1.3 函数定义与函数声明 1. 函数定义   函数定义是按照C语言的语法规则引入新 的函数,并提供如下信息:   ● 函数的返回值类型(如果有);   ● 参数的个数及类型和名称;   ● 调用函数时要执行的代码;   ● 函数的有效性。 2. 函数声明   函数声明是对所用到的函数的特征进行必要的 声明。编译系统以函数声明中给出的信息为依据, 对调用表达式进行检测,例如,形参与实参类型是 否一致,使用函数返回值的类型是否正确,以保证 调用表达式与函数之间的参数正确传递。 声明语句提供的必要信息包括:函数名,函数 的类型,函数参数的个数、排列次序以及每个参数 的类型。函数声明的一般格式为:  类型标识符 函数名(类型标识符形参,类型标 识符形参,…); 设有一函数的定义为: double func (double a, int b, char c) { /* 函数体*/ } 与之相应的函数声明应为: double func (double x, int y, char z);
显示全部
相似文档