c 语言程序模块化设计,c语言模块化程序设计.ppt

c语言模块化程序设计

第5章 模块化程序设计 5.1 模块化设计与函数 模块化程序设计 基本思想:将一个大的程序按功能分割成一些小模块。 特点: 各模块相对独立、功能单一、结构清晰、接口简单。 控制了程序设计的复杂性。 缩短了开发周期。 避免程序开发的重复劳动。 易于维护和功能扩充。 开发方法: 自上向下,逐步细化。 C程序结构 C是函数式语言。 必须有且只能有一个名为main的主函数。 C程序的执行总是从main函数开始于“{”,在main中结束于“}”。 其它函数只在执行main()函数的过程中被调用时才能执行。 5.1.1 函数的定义 “函数”(function):“功能”的意思,即用函数来实现程序 中的某一个功能。 C语言程序处理过程全部都是以函数形式 出现,最简单的程序至少也有一个main函数。 1.无参函数的一般形式 类型说明符 函数名() { /*函数体*/ 局部变量说明; 语句序列; } 注意: 类型说明符和函数名称为函数头。 函数名是由用户定义的标识符,函数名后有一个空括号,其中无参数 。 {}中的内容称为函数体 。 函数的定义位置是在任意函数之外,且不能嵌套定义 。 2.有参函数的一般形式 类型说明符 函数名(形式参数类型及说明表列) { /*函数体*/ 局部变量说明; 语句序列; } 形式参数类型及说明表列的一般形式为: 数据类型 形式参数,数据类型 形式参数… 注意: 有参函数比无参函数多了一个参数表 。 函数定义分为两大部分:函数头和函数体 。 与上述现代风格相应传统风格的函数定义为如下形式: 类型说明符 函数名(形式参数变量表列) 形式参数类型说明; { /*函数体*/ 局部变量说明; 语句序列; } 返回语句 形式:return (表达式);return 表达式;return; 意义:流程返回主调函数,把返回值带给主调函数。 说明: 函数中可有多个return语句。 若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换(函数调用转换)。 若函数的类型为void,则函数可以无return语句,或者return语句的表达式为空 。 若无return语句,遇}时,流程自动返回主调函数。 5.1.2 函数的调用 1.函数的声明 一般形式: 函数类型 函数名(参数类型1,参数类型2,…); 函数类型 函数名(参数类型1 参数名1,参数类型2 参数名2,…); 作用:告诉编译系统函数类型、参数个数及类型。 位置:程序的数据说明部分。 注意: 形参名可省略。 函数的声明应与函数定义时的头部写法保持一致。 函数定义在前,主调函数在后时,可以省略函数声明。 若在定义所有函数前声明了函数,各个主调函数中不必再对其声明。 2.函数的调用 有参函数调用形式: 函数名(实参表达式1,实参表达式2,…); 无参函数调用形式: 函数名( ); 注意: 实际参数表中的参数可以是常量,变量或其它构造类型数据及表达式 。 各实参之间用逗号分隔。 对被调用函数要求: 必须是已存在的函数。 库函数: #include 用户自定义函数: 函数声明。 调用方式 函数表达式: m = max(a,b); 函数语句: printf(“Hello,World!\n”); 函数实参: printf(“%d”,max(a,b)); 说明: 实参与形参个数相等,类型一致,按顺序一一对应。 如果调用是无参函数,实参表可以没有,但括号不能省略。 实参表求值顺序,因系统而定(Turbo C 自右向左)。 5.1.3 函数的参数传递 形参与实参 形式参数:定义函数时函数名后面括号中的变量名。 实际参数:调用函数时函数名后面括号中的表达式。 说明: 形参只有在被调用时才分配内存,调用结束,形参 内存释放。 实参必须有确定的值以传给形参。 形参与实参类型一致、个数相同、顺序一致。 函数调用中发生的数据传送是单向的(即传值而不传地址)。 int max(int x,int y) {? int z;? y=(x>y)? x:y;? return z; ????????} 5.1.4 函数的嵌套调用 C规定:函数定义不可嵌套,但函数调用可以嵌套,即在一 个函数的定义中出现对另一个函数的调用。 #include long fun1(int n) { long data=1; int i; if(n<0) { printf("input error");data=-1;} else if(n==0) data=1; else for(i=1; i<=n; i++) { d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值