西安石油大学程序设计语言(C)课件第6章 函数和编译预处理.pptVIP

西安石油大学程序设计语言(C)课件第6章 函数和编译预处理.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本 章 内 容 概述 函数定义的一般形式 函数参数和函数的值 函数的调用 函数的嵌套调用 函数的递归调用 数组作为函数的参数 局部变量和全局变量 变量的存储类别 内部函数与外部函数 运行一个多文件的程序 宏定义 文件包含处理 条件编译 6.1 概述 基本概念 模块化 根据需求分析要求和功能抽象结果,把软件划分成若干个模块,每个模块完成一个子功能。 子程序 在高级语言中,模块化的实现通过子程序来的完成。 一个程序由主程序和子程序组成,可以只有主程序而没有子程序,但不能只有子程序而没有主程序。 函数 在C语言中,子程序称为函数。 一个C程序由一个主函数和若干个函数构成。即主函数调用其他函数,其他函数可以互相调用。 例6.1:函数调用简单举例 6.1 概述 说明 一个源程序文件由一个或多个函数构成,称作一个编译单位,C程序由若干个编译单位组成。 整个C程序有且仅有一个主函数main,程序由此开始,且调用完其它函数后回到此结束。 所有函数都是平行的,没有从属关系,函数不能嵌套定义,但可以相互调用(main函数除外)。 从用户角度,函数分为标准函数和自定义函数。 从函数的形式,函数分为无参函数和有参函数: 无参函数 主调函数与被调函数之间无数据传递。一般以不带返回值居多。 有参函数 主调函数与被调函数之间可以有双向数据传递。可以有返回值也可不带返回值。 6.2 函数定义的一般形式 无参函数的定义形式 类型标识符 函数名() { 说明部分 语句 } 有参函数的定义形式 类型标识符 函数名(形式参数表列) { 说明部分 语句 } 6.2 函数定义的一般形式 空函数 类型标识符 函数名() { } 例如: 函数定义:Nothing(){} 函数调用:Nothing(); 对形参声明的两种方式 传统方式: 例:int max(x, y) int x, y; { … } 现代方式: 例:int max(int x, int y) { … } 6.3 函数参数和函数的值 形参和实参 形参:定义时函数名后面括弧中的变量名称为形式参数。 实参:调用时函数名后面括弧中的参数称为实际参数。 例6.2: 调用函数时的数据传递 main() { int max(int x, int y); /*对max函数的声明*/ int a, b, c; scanf(%d, %d, a, b); c = max(a, b); printf(Max is %d, c); } max(int x, int y) /*对max函数的定义*/ { int z; z=xy? x:y; return(z); } 6.3 函数参数和函数的值 函数的返回值 由return语句获得。 一个函数中可以一个以上的return语句,执行到哪个return语句,哪一个return语句起作用。 return语句返回的函数值类型应与定义函数时说明的函数值类型一致。 当二者类型不一致时,以函数类型为准。例如: 输入:1.5, 3.5 输出? 无return语句则带回不确定的值。 用void定义无类型,表示不带回值。 6.4 函数的调用 函数调用的一般形式 函数名(实参表列); 说明: 调用无参函数时,无实参形列,但括弧不能省略。 实参个数与形参个数相等,对应参数的类型应一致。 多个实参时,对实参求值的顺序依系统而定。Turbo C按自右而左的顺序求值。 例6.4: 实参求值的顺序:不是确定的 分析结果? 如果实现调用时从左至右求实参值? 6.4 函数的调用 函数调用的三种方式 函数语句 例如:printstar(); 主要用来执行某一操作,无返回值。 函数表达式 例如:c=2*max(a, b); 函数出现在一个表达式中,要求带回一个确定的返回值。 函数参数 例如:m=max(a, max(b, c)); printf(%d, max(a, b)); 函数调用作为一个函数的实参,要求带回一个确定的返回值。 6.4 函数的调用 对被调用函数的声明和函数原型 函数调用的条件 首先被调用的函数必须是已经存在的函数(库函数或用户自定义函数)。 对库函数,应使用#include命令进行文件包含。 对用户自定义函数,当该函数与主调用函数在同一文件中时,一般应在主调函数中对被调用函数作声明。如例6.5: 6.4 函数的调用 在函数声明中可以不写形参名,只写形参的类型。 如:float

您可能关注的文档

文档评论(0)

ormition + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档