子程序
来自站长百科
子程序就是能被其他程序调用,在实现某种功能后能自动返回到调用程序去的程序。其最后一条指令一定是返回指令,故能保证重新返回到调用它的程序中去。也可调用其他子程序,甚至可自身调用(如递归)。在计算机科学中,子程式是一个大型程式中的某部份程式码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他程式码,具备相对的独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被整合为软件库。函数在面向过程的语言中已经出现。是结构(Struct)和类(Class)的前身。本身就是对具有相关性语句的归类和对某过程的抽象。
子程序分类[ ]
- 子程式(subroutine)是一个概括性的术语,任何高阶程序所呼叫的程序,都被称为子程式。它经常被使用在组合语言层级上。子程式的主体(body)是一个程式码区块,当它被呼叫时就会进入执行。
- 函数(function)是一种子程式,利用函数名称,可以接收回传值。例如:
c = max (a,b); |
- 程序(procedure)是一种子程式,它能够接受不同的引数,来执行某些特别的动作。例如:
printf("Hello World\n") |
函数与程序在某些编程语言中是被分开的,但是在C语言中,所有程序都是函数,这两者被认为是相同的。这有可能造成一些副作用,特别是在回传值是void型别时。在面向对象程序设计语言中,类别或物件中的子程式,被称为方法(method)。
子程序的作用[ ]
- 降低复杂性:使用子程序的最首要原因是为了降低程序的复杂性,可以使用子程序来隐含信息,从而使你不必再考虑这些信息。
- 避免代码段重复:无可置疑,生成子程序最普遍的原因是为了避免代码段重复。
- 限制改动带来的影响:由于在独立区域进行改动,因此,由此带来的影响也只限于一个或最多几个区域中。要把最可能改动的区域设计成最容易改动的区域。最可能被改动的区域包括:硬件依赖部分、输入输出部分、复杂的数据结构和商务规则。
- 隐含顺序:把处理事件的非特定顺序隐含起来是一个很好的想法。
- 改进性能:通过使用子程序,可以只在一个地方,而不是同时几个地方优化代码段。把相 同代码段放在子程序中,可以通过优化这一个子程序而使得其余调用这个子程序的子程序全部 受益。把代码段放入子程序也使得用更快的算法或执行更快的语言(如汇编)来改进这段代码 的工作变得容易些。
- 进行集中控制
- 隐含数据结构
- 隐含指针操作
- 隐含全局变量
- 促进重新使用代码段
- 计划开发一个软件族
- 改善某一代码段可读性
- 改善可移植性
- 分隔复杂操作
- 独立非标准语言函数的
- 简化复杂的布尔测试