6.1 函数的功能与规模设计
函数应当短而精美,而且只做一件事。不要设计多用途面面俱到的函数,多功能集于一身的函数,很可能使函数的理解、测试、维护等变得困难。
6.2 函数的返回值
(1)对于函数的返回位置,尽量保持单一性,即一个函数尽量做到只有一个返回位置。(单入口单出口)。
要求大家统一函数的返回值,所有的函数的返回值都将以编码的方式返回。
例如编码定义如下:
#define CM_POINT_IS_NULL CMMAKEHR(0X200)
:
:
参考函数实现如下:
LONG 函数名(参数,……)
{
LONG lResult; //保持错误号
lResult=CM_OK;
//如果参数有错误则返回错误号
if(参数==NULL)
{
lResult=CM_POINT_IS_NULL;
goto END;
}
……
END:
return lResult;
}
调用者对所调用函数的错误返回码要仔细、全面地处理
6.3 变量的使用
当你确实需要时才用全局变量,函数间应尽可能使用参数、返回值传递消息。
6.4 函数参数
在同一项目组应明确规定对接口函数参数的合法性检查
(1)防止将函数的参数作为工作变量。将函数的参数作为工作变量,有可能错误地改变参数内容,所以很危险。对必须改变的参数,最好先用局部变量代之,最后再将该局部变量的内容赋给该参数。
(2)避免设计多参数函数,不使用的参数从接口中去掉,目的减少函数间接口的复杂度。