因为C语言的函数实现的是模块的功能,所以模块设计原则也适用于函数的设计。设计函数时,最主要注意以下几点:
(1)函数功能独立
每一个函数应该只实现一个特定的独立功能,例如求阶乘函数只实现阶乘功能,不能在此函数中实现其他功能。每一个函数与其他函数的关系除了调用关系外,不能再有其他关系,这样才能够在修改 函数时,不对其他函数造成影响。除了形参提供给外部的调用接口外,尽量不要使用全局变量等,以免受到外部的数据约束。
(2)函数的规模应大小适中
函数不能太大也不能太小。规模太大的函数,可以考虑分解成若干个小函数实现。而规模太小的函数,如只有一条语句,可以考虑将该函数撤销,直接用语句实现。一个函数中也不要实现太多功能,因为不利于代码重用。如上例求组合数中,如果在fac()函数中加入数据输入或输出的功能,那么在调用fac()时必然要求输入并且将结果输出。可是有些结果不需要输出,只在计算中出现,所以这样的fac()函数反而不利于实现代码重用性。因此要求设计函数时,功能尽量简洁,也就是说只实现最基本的功能即可。
函数的规模也不可过小,过小没有意义,如上例中将变量值输入也定义为一个函数:
int read(int x)
{
scanf("%d",&x);
return x;
}
需要对变量输入数据时,调用该函数:
m=read(m);
n=readtn);
这样其实没有太大的实际意义,不但没有简化程序,反而增加了函数调用语句,增加代码量。
(3)注意函数的层次不能过多
在函数设计中,常常为了实现一个函数,必须在该函数内再调用另一个函数,称为函数的嵌套,这样就出现了如图所示的层次关系。
从图中可看到,从main()函数开始,整个程序分为4层,C语言中对于函数的嵌套层次并没有限制,但一般实际设计程序中,考虑到结构清晰性及内存的限制,一个程序中的函数层次不可过多。
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>