今天编写一个函数,需要传的参数比较多,算起来也有11个,突发奇想,一个函数能允许接收几个参数,还是没有限制,但是这样会影响函数的效率吗?带着所惑,在网上找了一些资料,最后对函数加了结构体进行改造。如有一些建议或还未考虑到的地方,还请相互指教。
一个函数的参数的数目没有明确的限制,但是参数过多(例如超过8个)显然是一种不可取的编程风格。参数的数目直接影响调用函数的速度,参数越多,调用函数就越慢。另一方面,参数的数目少,程序就显得精练、简洁,这有助于检查和发现程序中的错误。因此,通常应该尽可能减少参数的数目,如果一个函数的参数超过4个,你就应该考虑一下函数是否编写得当。
如果一个函数不得不使用很多参数,你可以定义一个结构来容纳这些参数,这是一种非常好的解决方法。
实例:
原函数:int insert_history(int h,int l,int m,int i,int total,...);
优化后:
typedef struct{
int h; /*High risk*/
int l; /*Low risk*/
int m; /*Middle risk*/
int i; /*Information risk*/
}risk;
int insert_history(risk level,long int total,....);