Chapter 3 函数和类的自顶向下设计
(1)一个程序的开发过程:
1.问题规范
2.分析
数据需求
3.设计
初始算法
算法精化
4.实现
5.测试
(2)重要工具:结构图
(3)分析,设计程序时,甚至对任何问题来说,我们都要由大到小,层层分解,由一个大问题分割成多个相关
的小问题,一口一个蛋糕是不现实的。
3.4.5 函数的执行顺序
(a)我们将函数原型设定于main函数前。
(b)编译器先处理函数原型。
(c)编译main函数(默认main函数定义在其它函数之前)
(d)编译每个函数,此时,每当到一个函数末尾,编译器自动插入一条使控制从函数转回主调语句
的机器语言语句
(e)运行程序
1.从main函数第一局开始,遇到调用函数时,将控制转给被调用函数。
2.为该函数定义变量分配内存。
3.执行语句
4.执行完,将控制返回main函数。
5.释放刚才函数占用的内存。
3.5.3 风格
(1)函数接口注释
前件:函数被调用前必须成立的条件
知道前件什么意思之后也应该明白为什么要接口注释了,即方便别人重用我们的函数。
如下描述:
// Pre: R is defined.
// xxxxxxxxxxxxxx
(1)一个程序的开发过程:
1.问题规范
2.分析
数据需求
3.设计
初始算法
算法精化
4.实现
5.测试
(2)重要工具:结构图
(3)分析,设计程序时,甚至对任何问题来说,我们都要由大到小,层层分解,由一个大问题分割成多个相关
的小问题,一口一个蛋糕是不现实的。
3.4.5 函数的执行顺序
(a)我们将函数原型设定于main函数前。
(b)编译器先处理函数原型。
(c)编译main函数(默认main函数定义在其它函数之前)
(d)编译每个函数,此时,每当到一个函数末尾,编译器自动插入一条使控制从函数转回主调语句
的机器语言语句
(e)运行程序
1.从main函数第一局开始,遇到调用函数时,将控制转给被调用函数。
2.为该函数定义变量分配内存。
3.执行语句
4.执行完,将控制返回main函数。
5.释放刚才函数占用的内存。
3.5.3 风格
(1)函数接口注释
前件:函数被调用前必须成立的条件
知道前件什么意思之后也应该明白为什么要接口注释了,即方便别人重用我们的函数。
如下描述:
// Pre: R is defined.
// xxxxxxxxxxxxxx