c语言程序设计第十一讲第五章下
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
distinct entities.
从外部获取数据
C语言把功能 独立或相同、 相似的片段抽 象成一个函数
double AvgMultiply(double array[], int n, double y)
{
计算n个数的平均值×Y ;/ 2;
返回结果;
}
一改
全改
第9页/共71页
独立定义 独立实现
9
函数说明规范:接口说明
16
第16页/共71页
存储区用途
静态存储区主要用途
保存采用静态分配方式的变量的内容
外部变量(全局变量) 静态内部变量
保存程序中的字符串常量
动态存储主要用途
供自动型内部变量的空间分配使用 供显式动态分配的存储空间分配(见后续内容)
17
第17页/共71页
变量类别及其存在期
内部变量的类别
模块,module
抽象机制
组件,component
程序,program
7
第7页/共71页
函数
一般可以传递数据, 通过参数传
小模块1
小模块2
…
小模块n
组件,包, 模块,程序
应用环境1
…
应用环境 m
应用于
xx.c
模块间调 aa.c 用返回结
果
…
打包
工具箱
第8页/共71页
共处
大模块1
大模块2 …
大模块K
组织成一 个项目
a.obj
项目的中 间结果
一个C程序的组成
b.c 函数
编译
b.obj
***.c 函数
编译
… ***.obj
链接 MyProห้องสมุดไป่ตู้.exe
项目的最 终结果
12
第12页/共71页
模块文件
13
第13页/共71页
*.obj文件
*.exe文 件
14
第14页/共71页
变量的作用域与存在期
变量定义
3
第3页/共71页
复杂问题分解与问题解决
复杂问题
简单问题1 解 解1
分解
简单问题2
…
简单问题n
解
解
解
解2
…
解n
整合
整个问题的解
4
第4页/共71页
解决问题的办法:化整为零,把复杂程序分解成 不同的小模块,分别实现。
长程序
划分
5
第5页/共71页
模块化程序设计思想
总体功能
重要的软件开发手段 软件工程管理理念
响变量的生命周期。
18
第18页/共71页
函数中的参数
形式参数和实际参数 formal argument—形式参数
定义函数时给出的参数,称为形式参数 Arguments occurred in function list when defining a
function
actual argument—实际参数
C语言的函数原型—函数存在信息
函数原型—function prototype 声明某一个函数的存在
在使用某个函数以前,用函数原型来声明某个函数已经是 一个合法的、有定义的函数,请声明之后的代码放心使用 该函数。
Use function prototype to declare the existence of a function
/*******************************************\ 函数名称:
写出函数的名称 功能描述:
描述出函数具有的功能 函数参数:
输入输出参数说明,对每个参数都需要作出仔细说明 返回值:
返回值说明,或者标明无返回值 模块历史:
谁于某年某月某日创建本模块,创建人email 谁于某年某月某日修改本模块,修改人email 修改原因:可有可无,根据需要添加 \******************************************/
原型说明的形式
与函数头部类似,加分号;
确定了变量何处、何时能使用
何处能使用作用域
能够使用变量的范围—代码段
何时能使用存在期
确定变量建立和销毁时间—时间段。 各种变量的存在期可能不同。 变量实现的基础是内存单元,存在期就是变量被分
配内存空间到撤消的期间
15
第15页/共71页
存储区示意图
程序占用的存储区
内存
程序代码 静态存储区 动态存储区
第10页/共71页
用处?
10
C的模块和C程序结构
一组函数构成一个函数模块; 在C程序里,一个*.c或*.cpp文件就是由多
个函数构成的一个功能模块; 每个功能模块编译后构成一个独立的目标
模块*.obj 多个目标模块绑定在一起构成一个*.exe文
件
11
第11页/共71页
模块
…
a.c
函数
编译
8
main() {
… AvgMultiply(..., 1000, …); … AvgMultiply(…, 100, …); … AvgMultiply(…, 10000, …); … }
返回结果
名字
重复的片段用 函数调用代替
独立使用
效
率
合称为:Interface
接口,A common
boundary between two
第五章 C程序结构
1
第1页/共71页
主要内容
数值类型 函数和标准库函数 函数定义和程序的函数分解 C程序结构与变量 预处理命令 定义常量 字位运算符 编程实例
2
第2页/共71页
知识回顾及提升
最重要的思想
模块化程序设计思想
函数分解及其思想 C程序的组成 对象(变量、函数)的存在、声明与使用 变量的生命周期和作用域
自顶向下 逐步细化
子功能
子功能
子功能 … 子功能
…
………
问题:高级语言提供了什么机制来支持模块化程序设计?
6
第6页/共71页
高级语言常见的抽象机制
子程序,sub-program, sub-routine
过程,procedure
函数,function
类,class 包,package
C语言提供的 最基本的代码
auto—默认的内部变量类别,可以不用写,存储单元在运行 过程中动态分配和释放
static—静态内部变量,保存在静态存储区,存储单元在程 序启动时分配,程序结束时释放。
外部变量
在函数之外定义的变量称为外部变量、全局变量。External variable
全部保存静态存储区,程序启动时分配,程序结束时释放。 在外部变量前加static只影响对应变量的可见范围,但不影
调用函数时给出的参数,称为实际参数 Arguments occurred in function list when calling a
function
C函数的参数是值参数。
函数调用时先计算实参表达式的值 把值复制给对应形参 而后执行函数体。 函数内对形参的操作与实参无关。
19
第19页/共71页