c语言基础教程 - 第五章函数和存储类免费版

2019-06-02 17:09

完全免费版

第五章 函数和存储类

5.1.1 函数的定义

如果想调用一个函数完成某种功能,必须先按其功能来定义该函数。函数定义的格式如下所示:

<存储类说明><数据类型说明><函数名>(<参数表>) <参数说明> { <函数体> }

函数的定义可分两大部分:函数头和函数体。函数头包含(函数名>和(参数表)以及关于该函数的(存储类说明)、《数据类型说明),还有<参数说明).函数体是由一对花括号括起来的若干语句组成的,函数体内可以有一条语句或多条语句,也可以有复合语句,还可以是空,即该函数什么操作也不做,这是一个最简单的函数。(函数名)的起法同标识符,能够通过函数名来标明该函数的主要功能为最好。(函数名>后面跟一对圆括号,内有一个<参数表、,该'参数表)由一个或多个参数构成,多个参数之间用逗号分隔,也可以没有参数,但圆括号不可省略。定义瞬数时要对该函数的存储类和数据类型进行说明。函数的存储类有两种:外部函数和内部函数。外部函数用extern关键字加在函数名前面进行说明,常常省略,凡是不加存

储类说明的函数都是外部函数。内部函数必须在函数名前面加stai}c关健字进行说明,内部函数又称静态函数。函数的数据类型是该函数返回值的类型,函数的数据类型千一分丰富,一般C语言所允许的数据类型大多都可作为函数类型,个别的除外,如联合类型等。C语言规定,数据类型中除了

int型的可以不要说明外,其余各种类型都需说明。如果一个函数具有参数时,则需对参数的类型进行说明。<参数说明)一般放在函数名的下一行,有的编译系统(如Turbo G)可以把参数说明放在参数表中。

下面是函数定义的几个例子: Nothing() { }

该函数名字是nothing,它没有参数,它的函数体是空,该函数什么也不做。空函数可以用于调试中,它表明应该调用一个函数,但该函数尚未编好,先用一个空函数顶替。 void nopa() {

printf (\); }

该函数名是nops,该函数没有参数,因此不必进行参数说明,这

里,void关键字用来说明该函数没有返回值。该函数的函数体内仅有一个语句。 float max(x, y) float x, y; { float z z一x>y? x:y: return(z);

该函数名是max,它有两个参数x,y,它们都是float型数,由于该函数有参数,因此需要

参数说明:float x, y;该函数的数据类型为float型,这说明该函数有返回值,而返回值的类型是float型。该函数。无存储类的说明,这意味着该函数的存储类为外部的。该函数体是由3条语句组成的。这里有说明语句,它被放在执行语句的前面。 在函数的定义中还应注意如下几个问题:

(1)C语言中的函数可分为有返回值和无返回值两大类。在有返回值的函数定义中,除int型返回值外都必须对返回值的类型进行说明。在无返回值的函数定义中,可以加上无返回值的说明符void,也可以不加。这样,对于一个不加数据类型说明的函数可能是无返回值的,也可能是有int型返回值的。

(2)函数的定义不能嵌套。这就是说,不能在一个函数的函数体内再定义一个函数。例如,下列写法是错误的: fl(x,y) int x, y; ( f2(a,b) int a,b; {

Return(a十b); }

这种企图在f1()函数中再定义一个f2()函数的做法是错误的。但是,函数的调用允许嵌套。这就是说,可以在一个函数体内调用另一个函数,也可以进行自身调用(又称递归调用).

(3)如果一个函数的函数体中有变量的定义或说明时,一定要放在执行语句的前边,不可放在中间或后面,否则要出编泽错。 5.1.2 函数的说明

函数定义好后,在调用之前一般地要进行说明。函数的说明方法有如下两种:

一是只说明函数的类型,这称为简单说明。例如,对前面定义过的函数max说明如下:

float max();

这种说明可以单独一行,也可以与其他同类型的变量放在一起。 二是不仅说明函数的类型还要说明其参数的类型,这称为原型说明。例如,对前面己定义过的函数max ( )原型说明如一F: Boat max (float,float);

原型说明要比简单说明复杂一些,但是用原型说明后,在函数调用时系统将其参数的类型进行检查,如果发现不一致,则报错。如果用简单说明方法,则在调用时不作参数类型是否一致的检查,即使不一致也不报错,由此可见,原型说明比简单说明要安全些。 在实际使用中关于函数的说明还需注意如下几点:

(1)在下列情况下,函数在调用之前不必说明:在定义函数时没有加任何说明;或者是该函数无返回值义没有加void说明符;或者是该函数具有int型返回值而省略说明符。

(2) 助在下列情况下,函数在调用之前必须说明,如不说明,将出现编译错:即在定义函数时加了说明符,包含void在内,又是先调用后定义(即调用在定义之前),则调用之前必须说明。


c语言基础教程 - 第五章函数和存储类免费版.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:马河小学绩效方案文档

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: