在计算机科学专业的课程中,经常提到“函数”的概念。但什么是“函数”?使用它有什么好处?我想大家也不是特别的清楚。最近,我看了一份资料,叫做《C语言深度剖析》,感觉很不错!作者在资料里面专门提到了“函数的由来与好处”,读后让人耳目一新,豁然开朗!
在《C程序设计》(谭浩强第三版)中,作者对函数的概念作了简单的介绍,说:“一个较大的程序分为若干个程序模块,并用子程序实现模块的功能;在C语言中,子程序的作用就是由函数完成的。”并没有给出“函数”的确切定义,也没有说明其好处到底是什么。
在《C++语言程序设计》(郑莉第3版)中,作者认为“函数是模块划分的基本单位,是对处理问题过程的一种抽象,将相对独立、经常使用的功能抽象为函数。”同样是对“函数”的定义与好处关注较少。
在《C++ Primer》(中文第4版)中,作者认为“函数可以看作程序员定义的操作”,然后花了大量的篇幅介绍如何在C++中使用“函数”。
可以看出,许多书籍中这是将“函数”引入了,并未让读者认为“非常有必要”使用“函数”,即好像有一种“理所应当”的感觉。
而在《C语言深度剖析》这份资料中,作者就首先说明了函数能够给我们带来什么好处。概括起来一共有9点,包括:
第一,降低复杂性:降低程序的复杂性是使用函数的最首要原因;
第二,避免重复代码段:将公共代码放入函数中,可以节约许多空间;
第三,限制改动带来的影响;
第四,隐含顺序:在编写函数时,隐含操作执行的顺序信息;
第五,改进性能;
第六,进行集中控制:用专门化的函数去读取和改变内部数据内容;
第七,隐含数据结构:可以将数据结构的实现细节隐含起来;
第八,隐含指针操作:将指针操作独立在函数中,可以把注意力集中到操作意图而不是集中到指针操作本身;
第九,隐含全局变量:进行参数传递。
没想到“函数”的好处有这么多,真是“不看不知道,一看吓一跳”!看来有的时候,一个小小的概念也会包含多方面的内容,这就需要我们耐心地去研究和探索了!