函数和编译预的处理办法.pptVIP

  • 0
  • 0
  • 约1.53万字
  • 约 57页
  • 2019-08-29 发布于广东
  • 举报
6.1 模块化程序设计与函数 一、模块化程序设计 1、基本思想:将一个大的程序按功能分割成一些小模块 2、特点: 各模块相对独立、功能单一、结构清晰、接口简单 控制了程序设计的复杂性 提高元件的可靠性 缩短开发周期 避免程序开发的重复劳动 易于维护和功能扩充 3、开发方法: 自上向下,逐步分解,分而治之 三、函数分类 从用户角度 标准函数(库函数):由系统提供 用户自定义函数 从函数形式 无参函数 有参函数 6.2 函数的定义与调用 6.2.1 函数的定义 6.2.2 函数的返回值 返回语句 形式: return(表达式); 或 return 表达式; 或 return; 功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数 说明: 函数中可有多个return语句 若无return语句,遇}时,自动返回调用函数 若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换------函数调用转换 void型函数 6.2.3 函数的调用 调用形式 函数名(实参表); 说明: 实参与形参个数相等,类型一致,按顺序一一对应 实参表求值顺序,因系统而定(Turbo C 自右向左) 函数说明 对被调用函数要求: 必须是已存在的函数 库函数: #include *.h 用户自定义函数: 函数类型说明 函数声明 一般形式: 函数类型 函数名(形参类型 [形参名],….. ); 或 函数类型 函数名(); 作用:告诉编译系统函数类型、参数个数及类型,以便检验 函数定义与函数说明不同 函数说明位置:程序的数据说明部分(函数内或外) 下列情况下,可不作函数说明 若函数返值是char或int型,系统自动按int型处理 被调用函数定义出现在主调函数之前 有些系统(如Borland C++)要求函数说明指出函数返值类型和形参类型,并且对void 和 int 型函数也要进行函数说明 C规定:函数定义不可嵌套,但可以嵌套调用函数 6.2.4 函数参数及其传递方式 形参与实参 形式参数:定义函数时函数名后面括号中的变量名 实际参数:调用函数时函数名后面括号中的表达式 参数传递方式 值传递方式 方式:函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值 特点: 形参与实参占用不同的内存单元 单向传递 地址传递 方式:函数调用时,将数据的存储地址作为参数传递给形参 特点: 形参与实参占用同样的存储单元 “双向”传递 实参和形参必须是地址常量或变量 例:兔子问题: 第1个月有1对兔子 过2个月,兔子就可每个月生1对兔子 问第n个月有多少对兔子? 分析: 设第n个月有f(n)对兔子 根据题意有 f(0)=0, f(1)=1 f(n)= f(n-1) + f(n-2) f(n-1): 前一个月的兔子数 f(n-2): 本月生的兔子数 long f(int n ) { switch (n ) { case 0: return 0; break ; case 1: return 1; break ; default: return f(n-1) + f(n-2); } } P82 例6.9辗转相除法求最大公约数 求 m和 n 的公约数算法 if (m % n) == 0 n 是公约数; else 求 n 和 m % n 的公约数; 局部变量---内部变量 在函数内定义,只在本函数内有效 说明 main中定义的变量只在main中有效 不同函数中同名变量,占不同内存单元 形参属于局部变量 可定义在复合语句中有效的变量 局部变量可用存储类型:auto register static (默认为auto) 全局变量---外部变量 定义:在函数外定义,可为本文件所有函数共用 有效范围:从定义变量的位置开始到本源文件结束,及有extern说明的其它源文件 外部变量说明: extern 数据类型 变量表; 外部变量定义与外部变量说明不同 若外部变量与局部变量同名,则外部变量

文档评论(0)

1亿VIP精品文档

相关文档