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

第8章 函数【精品】.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
烟台大学机电汽车工程学院 先进制造技术研究所 张俊华 2008-10-14 8.1 概述 程序可划分许多模块,每个模块完成一定的功能,C语言用函数定义,其他语言中用subroutine 定义 C程序有主函数(有且只有一个)和若干子函数组成。主函数,调用其他函数,其他函数可相互调用,同一函数可被一个或多个函数调用任意多次。 8.1 概述 编译 编译是以源程序文件为一个编译单位,而不是以函数为单位 一个C程序,可由多个源程序文件组成,每个源程序文件可包含若干函数,数据类型定义和预处理命令。 每个源程序文件,独立编写,独立编译,提高调试效率。 8.1 概述 从用户角度分 库函数 用户自定义函数 从函数形式 无参数函数 有参数函数 8.2 函数的定义形式 1 无参数函数定义形式 类型标识符 函数名() { 声明部分; 执行部分; } 8.2 函数的定义形式 例如: max(int x, int y) { int z; z=xy?x:y; return(z); } 函数定义说明 对函数类型不显式说明,则缺省隐含为int 函数命名,需自说明 对形参的说明,现代风格和传统风格 int max(int x,int y) int max(x, y) { int x; int y; } { } 函数体可以为空,即,空函数 函数体中,可以有一个或多个return语句,用以返回值 8.3 函数的调用 形参 称为哑元,在进行调用时用以向被调用函数传递数据。形参必须指定数据类型。 实参 实际调用函数向被调用函数传递的值。实参可以为常量、变量、表达式。一般情况,将实参的值赋值给形参,但当形参为数组名或指针时,传递的数组的首地址或指针所指向的地址。 当实参与形参的数据类型不一致时,存在类型转换问题 8.3 函数的调用 #include stdio.h int max(int x,int y); void main() { int a,b,c; scanf(”%d%d”,a,b) c=max(a,b) printf(”max=%d”,c); } 程序运行中的内存分配 程序运行过程 8.3.2 参数的传递方式和设置 1 传值法(Call by Value) 系统先将实参压入栈区,再弹出给被调用函数的形参,传递的数据类型可以是基本类型或结构类型。 函数属性说明指出函数是内部函数还是外部函数 内部函数用static 表示,具有内部连接性——内部函数只能被函数所在文件内的函数调用 外部函数用extern 表示,可缺省,具有外部连接性——外部函数可被其它文件内的函数调用 多文件程序建立 Turbo C 环境下的建立 1 建立一个*.prj工程文件,例如:建立example.prj file1.c flie2.c file3.c file4.c 或分行 8.5 函数设计的问题 Turbo C 环境下的建立 2 用include命令 在file1.c 中增加 #include ”flie2.c” #include ”file3.c” #include ”file4.c” 例如chapt08_05 3 VC 环境下的建立 8.5 函数设计的问题 Turbo C 环境下的建立工程 Turbo C 环境下的建立工程 VC 环境下的建立工程 VC 环境下的建立工程 VC 环境下的建立工程 VC 环境下的建立工程 VC 环境下的建立工程 8.5.3 局部变量、全局变量、变量的作用域 、可见性、生命期 程序模块 一对{}内的程序段。 变量的作用域 指能正确访问变量的有效程序范围 变量的可见性 作用域内变量,可以存取,是可见的,作用域外的变量,不能存取,是不可见的。 变量的生命期 指变量的生存时间。 局部变量 指函数体内或者是定义在一对{}内的变量。 全局变量 指定义在函数体外的变量。 局部变量的特点 定义位置,定义在函数体的开始部分 作用域 ,是变量所在的程序模块作用域 生命期,是所在的程序模块的执行时间,局部变量建立,执行结束,局部变量释放。 内存分配,分配内存的栈区 不同程序模块内可使用相同的局部变量 全局变量的特点 定义位置,定义在函数体外 作用域 ,具有文件作用域 生命期,整个程序的执行时间 内存分配,分配内存的静态存储区 如果局部变量与全局变量同名,在执行局部变量所在的模块时,同该变量的访问都是针对局部变量的。 int exa; void main() {exa=5; fun1(

文档评论(0)

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

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

1亿VIP精品文档

相关文档