网站大量收购独家精品文档,联系QQ:2885784924

第四章:函数和编译处理.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章:函数和编译处理

第四章 函数和预编译处理指令 第一节 函数 函数是C源程序的基本模块, 通过对函数模块的调用实现特定的功能。C程序的全部工作都是由各式各样的函数完成的, 所以也把C语言称为函数式语言。 由于采用了函数模块式的结构, C语言易于实现结构化程序设计。使程序的层次结构清晰,便于程序的编写、阅读、调试。 函数:实现了特定功能的带名称的一小段程序。 C语言不仅提供了极为丰富的库函数(如Turbo C,MS C 都提供了三百多个库函数),还允许用户建立自己定义的函数。用户可把自己的算法编成一个个相对独立的函数模块,然后用调用的方法来使用函数。 【注意】: 一个源程序文件由一个或多个函数组成.一个源程序文件是一个编译单元,即程序是以源文件编译的,而不是以函数编译的. 一个C程序由一个或多个源程序文件组成.一个源文件可以被多个应用程序公用 C程序的执行从main函数开始并在调用其他函数后返回main函数,在main函数中结束整个程序的运行.main函数是系统定义的. 所有函数都是平行的,即在定义函数时时相互独立的,一个函数并不属于另一个函数,所以函数定义不能相互嵌套。函数间可以相互调用,但是不能调用Main()函数. 一、函数的特点: 1.分工合作 2.较好的可读性 3.便于修改、纠错 4.提高程序编写的效率 c语言中的函数是子程序的总称,包括函数(有返回值)和子过程(无返回值)。C语言的程序由函数组成,函数是C语言程序的基本单位.c语言的编译单元是整个的源程序文件,而不是函数。 二、函数的一般形式 [函数返回值类型标示符] 函数名([形式参数列表]) { 说明部分; 语句部分; } 函数总是全局的,但可以使用static关键字告诉编译器,指定函数不被其他文件调用,若有被其他文件调用的情况则编译器报错,其声明形式为: static 类型标识符 函数名(形式参数列表); 三、函数的分类 (一)、按声明类型划分: 1.库函数:由C系统提供,用户无须定义, 也不必在程序中作类型说明,只需在程序前包含有该函数原型的头文件即可在程序中直接调用 2.用户自定义函数:由用户按需要写的函数。对于用户自定义函数, 不仅要在程序中定义函数本身, 而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用 (二)、按函数形式划分 1.无参函数:函数没有形参 类型标识符 函数名() { 函数体; } 2.有参函数:函数有至少一个形参 类型标识符 函数名 (形式参数列表) { 函数体; } 3.空函数:函数体里什么都不做.这种函数用于提供接口,以后再实现功能 类型标识符 函数名() { } 四、函数的声明 声明格式: [返回值类型修饰符] 函数名(形参类型,形参类型); 注意函数说明跟函数定义的不同: 定义: 确立函数的功能,包括指定函数名,函数值类型,形参及类型,函数体等,是一个完整的、独立的函数单位. 说明: 是对已定义的函数的返回值进行类型说明,只包括返回类型、函数名、参数类型,不包括形参和函数体. 在说明函数时: 1.被调用的函数必须存在(库函数或自定义函数) 2.使用库函数必须用#include 命令打开”头文件” 3.用户自定义函数要求主调函数在同一文件中,并且通常在主调函数中说明被调用函数的返回值类型,也就是说: 1).函数的声明可以出现在Main()函数之前 2).在main函数中调用函数之前声明被调函数 3).在主调函数中调用被调函数之前声明 但以下情况除外: (1)被调函数在主调函数之前定义. int GetSum(int,int); int d=GetSum(1,100); printf(%d\n,d); (2)在文件开头所有函数定义之前,在函数的外部已说明了函数类型. int function_a(); function_a(); (3)、如果被调函数的返回值是整型或字符型时, 可以不对被调函数作说明,而直接调用。这时系统将自动对被调函数返回值按整型处理。 (4)、对库函数的调用不需要再作说明, 但必须把该函数的头文件用include命令包含在源文件前部。 五、函数的调用 格式:函数名([实参表]) (1)若调用无参函数,可省略实参表列,但保留括号.例如上面的SayHello() (2)实参表列中的实参应用逗号隔开.如上面的Sum(int x,int y)和GetSum(int x,int y) (3)实参与形参的个数,类型应—对应. (4)实参表的求值顺序依系统而定,默认是从右到左. int num=1; int max(int x,int y); //int maxnum=max(num,++nu

文档评论(0)

jiqinyu2015 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档