- 1、本文档共111页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言基础教程_第五章函数和存储类免费版_精品
完全免费版
第五章 函数和存储类
5.1.1 函数的定义
?? 如果想调用一个函数完成某种功能,必须先按其功能来定义该函数。函数定义的格式如下所示:
??? 存储类说明数据类型说明函数名(参数表)??? 参数说明??? {??? 函数体??? }
??? 函数的定义可分两大部分:函数头和函数体。函数头包含(函数名和(参数表)以及关于该函数的(存储类说明)、《数据类型说明),还有参数说明).函数体是由一对花括号括起来的若干语句组成的,函数体内可以有一条语句或多条语句,也可以有复合语句,还可以是空,即该函数什么操作也不做,这是一个最简单的函数。(函数名)的起法同标识符,能够通过函数名来标明该函数的主要功能为最好。(函数名后面跟一对圆括号,内有一个参数表、,该参数表)由一个或多个参数构成,多个参数之间用逗号分隔,也可以没有参数,但圆括号不可省略。定义瞬数时要对该函数的存储类和数据类型进行说明。函数的存储类有两种:外部函数和内部函数。外部函数用extern关键字加在函数名前面进行说明,常常省略,凡是不加存储类说明的函数都是外部函数。内部函数必须在函数名前面加stai}c关健字进行说明,内部函数又称静态函数。函数的数据类型是该函数返回值的类型,函数的数据类型千一分丰富,一般C语言所允许的数据类型大多都可作为函数类型,个别的除外,如联合类型等。C语言规定,数据类型中除了int型的可以不要说明外,其余各种类型都需说明。如果一个函数具有参数时,则需对参数的类型进行说明。参数说明)一般放在函数名的下一行,有的编译系统(如Turbo G)可以把参数说明放在参数表中。
??? 下面是函数定义的几个例子:
??? Nothing()??? {?? }
??? 该函数名字是nothing,它没有参数,它的函数体是空,该函数什么也不做。空函数可以用于调试中,它表明应该调用一个函数,但该函数尚未编好,先用一个空函数顶替。
??? void nopa()??? {????? printf (oK!\n);??? }??? 该函数名是nops,该函数没有参数,因此不必进行参数说明,这里,void关键字用来说明该函数没有返回值。该函数的函数体内仅有一个语句。
?? float max(x, y)??? float x, y;??? {??? float z??? z一xy? 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);
??? 原型说明要比简单说明复杂一些,但是用原型说明后,在函数调用时系统将其参数的类型进行检查,如果发现不一致,则报错。如果用简单说明方法,则在调用时不作参数类型是否一致的检查,即使不一致也不报错,由此可见,原型说明比简单说
您可能关注的文档
- Google_Android手机嵌入式系统的研_究与开发_精品.doc
- 中小企业员工激励与管理的困境及对策分析-管理类毕业论文_精品.doc
- 《学前教育科研方法》平时作业及答案_精品.doc
- Google Android手机嵌入式系统的研究及开发_精品.doc
- 会计电算化毕业论文-新会计准则对企业纳税的影响_精品.doc
- 华为技术有限公司员工激励研究_精品.doc
- 《公路安全保障工程实施技术指南》要点解析_精品.doc
- 《金融风险管理》案例集_精品.doc
- 会计信息化条件下企业内部控制研究【毕业论文 任务书 文献综述 开题报告】_精品.doc
- 华中农业大学教师职务任职资格申报表_精品.doc
- 抢分秘籍10 带电粒子电场中的直线运动、偏转和交变电电场中的应用(三大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍11 带电粒子在组合场、叠加场中的运动(五大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍11 带电粒子在组合场、叠加场中的运动(五大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍12 电磁感应中的电路与图像问题(二大题型)(解析版) -2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍12 电磁感应中的电路与图像问题(二大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍14 热力学定律与气体实验定律综合应用(五大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍13 电磁感应中的动力学、能量和动量问题(三大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍14 热力学定律与气体实验定律综合应用(五大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍16 振动图像与波动图像的综合应用(三大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍15 光的折射、全反射的综合应用(二大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
文档评论(0)