C语言函数的由来与好处
其实在汇编语言阶段,函数这个概念还是比较模糊的。汇编语言的代码往往就是从入口开始一条一条执行,直到遇到跳转指令(比如ARM 指令B、BL、BX、BLX 之类)然后才跳转到目的指令处执行。这个时候所有的代码仅仅是按其将要执行的顺序排列而已。后来人们发现这样写代码非常费劲,容易出错,也不方便。于是想出一个办法,把一些功能相对来说能成为一个整体的代码放到一起打包,通过一些数据接口和外界通信。这就是函数的由来。
那函数能给我们带来什么好处呢?简单来说可以概括成以下几点:
1、降低复杂性:使用函数的最首要原因是为了降低程序的复杂性,可以使用函数来隐含信息,从而使你不必再考虑这些信息。
2、避免重复代码段:如果在两个不同函数中的代码很相似,这往往意味着分解工作有误。这时,应该把两个函数中重复的代码都取出来,把公共代码放入一个新的通用函数中,然后再让这两个函数调用新的通用函数。通过使公共代码只出现一次,可以节约许多空间。
因为只要在一个地方改动代码就可以了。这时代码也更可靠了。
3、限制改动带来的影响:由于在独立区域进行改动,因此,由此带来的影响也只限于一个或最多几个区域中。
4、隐含顺序:如果程序通常先从用户那里读取数据,然后再从一个文件中读取辅助数据,在设计系统时编写一个函数,隐含哪一个首先执行的信息。
5、改进性能:把代码段放入函数也使得用更快的算法或执行更快的语言(如汇编)来改进这段代码的工作变得容易些。
6、进行集中控制:专门化的函数去读取和改变内部数据内容,也是一种集中的控制形式。
7、隐含数据结构:可以把数据结构的实现细节隐含起来。
8、隐含指针操作:指针操作可读性很差,而且很容易引发错误。通过把它们独立在函数中,可以把注意力集中到操作意图而不是集中到的指针操作本身。
9、隐含全局变量:参数传递。
C 语言中,函数其实就是一些语句的的集合,而语句又是由关键字和符号等元素组成,如果我们把关键字、符号等基本元素弄明白了,函数不就没有问题了么?我看未必。真正要编写出高质量的函数来,是非常不容易的。
那函数能给我们带来什么好处呢?简单来说可以概括成以下几点:
1、降低复杂性:使用函数的最首要原因是为了降低程序的复杂性,可以使用函数来隐含信息,从而使你不必再考虑这些信息。
2、避免重复代码段:如果在两个不同函数中的代码很相似,这往往意味着分解工作有误。这时,应该把两个函数中重复的代码都取出来,把公共代码放入一个新的通用函数中,然后再让这两个函数调用新的通用函数。通过使公共代码只出现一次,可以节约许多空间。
因为只要在一个地方改动代码就可以了。这时代码也更可靠了。
3、限制改动带来的影响:由于在独立区域进行改动,因此,由此带来的影响也只限于一个或最多几个区域中。
4、隐含顺序:如果程序通常先从用户那里读取数据,然后再从一个文件中读取辅助数据,在设计系统时编写一个函数,隐含哪一个首先执行的信息。
5、改进性能:把代码段放入函数也使得用更快的算法或执行更快的语言(如汇编)来改进这段代码的工作变得容易些。
6、进行集中控制:专门化的函数去读取和改变内部数据内容,也是一种集中的控制形式。
7、隐含数据结构:可以把数据结构的实现细节隐含起来。
8、隐含指针操作:指针操作可读性很差,而且很容易引发错误。通过把它们独立在函数中,可以把注意力集中到操作意图而不是集中到的指针操作本身。
9、隐含全局变量:参数传递。
C 语言中,函数其实就是一些语句的的集合,而语句又是由关键字和符号等元素组成,如果我们把关键字、符号等基本元素弄明白了,函数不就没有问题了么?我看未必。真正要编写出高质量的函数来,是非常不容易的。