导入
理由
理解函数的重要性。
将代码分解为独立的函数,可以使代码以更智能的方式复用,并整体提升代码效率。你可以使用他人编写的函数(通过链接到你的程序中),从而避免从零开始编写所有内容。
编写用于执行常见任务的函数,相当于为你自己创建一种元语言。例如,如果你已经编写好了这些任务对应的函数,你的C程序可能看起来像这样:
1#include <stdio.h> 2// 其他代码在此处 3 4int main(void) { 5 loadSubjects(); 6 excludeSubject(12); 7 lowpassFilterData(); 8 collectMeansWithBinSize(8); 9 pval = performANOVA(); 10 printf("我的假设正确,p < %.3f\n", pval); 11 return 0; 12}
其核心思想是:一旦明确了对数据需要执行的操作类型,就可以编写一组函数(有时也称为子程序),来隐藏底层细节,为我们提供一种高层次的元语言,以便轻松执行所需步骤。
抽象
使用函数来抽象细节意味着,只要知道函数的输入和输出,用户就不必了解函数内部是如何实现的。
换个角度思考:假设你编写了一个 lowpassFilterData 函数,并且运行良好。某天朋友发现处理数据耗时较长,建议你改用另一种低通滤波算法,并提供了一段代码文件。只要新函数的输入和输出保持一致,你只需替换掉原来的函数,所有功能应保持不变。
你可以把函数看作带有输入和输出接口的“黑箱”。只要接口标签相同、数量一致,就可以用一个更新的黑箱替换旧的,而无需修改主程序,同时可能获得更快或更精确的功能。
与变量类似,定义函数也需要遵循特定的语法。下一课我们将详细学习这一语法。