- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 2024年广东省初中学业水平考试模拟地理试卷(一)课件.pptx VIP
- 广州洪德巷历史文化街区保护利用规划.pdf
- 广州市人民南历史文化街区保护利用规划(文本+图纸).pdf VIP
- 关于烹饪的策划书3.pptx
- WALL·E《机器人总动员(2008)》完整中英文对照剧本.pdf VIP
- LDT 99.13-2008 建设工程劳动定额市政工程-维修养护工程.docx
- 实验报告之spss频数分析.docx VIP
- 新教科版科学小学科学五年级下册全册教案(表格式,可打印).docx
- 2022年新改版教科版五年级上册科学全册教案教学设计(新整理版).doc
- 某小区高楼变频恒压供水系统设计.docx
文档评论(0)