一、函数体设计规则
1、函数功能要单一,函数体规模要小,尽量控制在50行代码内;
2、避免函数带有“记忆”功能,即相同的输入产生相同的输出,而带有“记忆”功能的函数,其行为是不可预测的,输出可能受某种“记忆状态”的影响;
3、检查输入参数的有效性,检查通过其他路径进去函数体内的变量的有效性;
4、用于出错的返回值一定要清楚;
5、使用断言捕捉非法情况;不要混淆非法情况与错误情况,后者是必然存在的并且一定要处理的;
二、参数设计
1、参数的书写要完整,函数声明时不要省略参数名;
如:
void Set(int width,int height)
不要写成
void Set(int,int)
2、若参数为指针,且仅作输入用,则应该在类型前加const,以防止它在函数体内被修改;
3、若输入参数是以值传递的方式传传递对象,则宜改用const &方式来传递,这样可以省去临时对象的构造和析构过程,从而提高效率;
4、参数不宜过多,应该控制在5个内;
5、尽量不要使用参数类型不确定的参数,这种风格的函数在编译时丧失了严格的类型安全检测;
三、返回值设计
1、不要省略返回值类型,若无返回值,则设置为返回void;
2、正常值用输出参数获得,而错误标志用return语句返回,不要将两者混在一起返回。