用函数编程是指算法中特定的功能选用已定义好的函数实现,若找不到函数,则将特定的功能实现为函数,便于重复使用。函数是最常见的代码重用形式。利用已有的函数既可以提高编程效率,又可以提高程序的可靠性。即使函数有问题,常用的函数也会更容易暴露问题,进而得以改正。
模块化是大型程序的设计准则之一。把功能复杂的大模块分解成若干个功能相对简单的小模块,可以有效地降低程序设计开发的难度。当小模块最终分解为功能单一的函数时,程序就由一个个函数组成了。相互独立的函数可以并行开发,这为团队开发创造了条件。团队中每个成员负责一个或几个函数,大家协作配合,高效地完成开发任务。
函数的执行结果多表现为存储在约定匿名存储单元中的返回值。使用函数时需明确其功能,如库函数abs只能求整数的绝对值,不能用于求浮点数的绝对值。为方便函数的重用,函数可定义在一个单独的文件中。函数文件属于工程时,先声明函数再使用函数。函数文件不属于工程时,用#include命令将函数拷贝到当前源文件中。
函数中能否使用某个变量由其作用域确定。根据作用域,变量分为全局变量和局部变量。全局变量可以在多个函数中使用,借助全局变量可在函数间共享数据。错用全局变量会影响函数的封闭性和可重用性,还会降低程序的可读性。
为了对比函数的定义对函数重用性的影响,定义了两个形参不同但功能相同的函数。
一些问题可以转化为“性质相同,规模较小”的子问题,这些问题常用递归算法解决。递归函数优雅地实现了递归算法。递归是一种独特的重复。计算机擅长重复,设计算法时要用重复的步骤,实现算法时这些步骤用循环或递归实现。初学者的编程水平体现在读写循环和递归的能力。
库函数内容丰富功能强大,是C语言必不可少的补充。
最后用一个综合示例简介了团队开发。