对函数的输入参数进行适当的检查
经常会有这样的程序:
foo(char* str)
{
int len = strlen(str);
……
}
char* GetUserName(struct user* pUser)
{
return pUser->name;
}
No!Please don’t do like that!。你应该先判断一下传进来的那个指针是不是为空(NULL)。如果传进来的指针为空的话,那么,你的一个大的系统就会因为这一个小的函数而崩溃。一种更好的技术是使用断言(assert)。当然,如果是在C++中,
使用引用要比指针好得多,但你也需要对各个参数进行检查。写有参数的函数时,首要工作,就是要对传进来的所有参数进行合法性检查。而对于传出的参数也应该
进行检查,这个动作当然应该在函数的外部,也就是说,调用完一个函数后,应该对其传出的值进行检查。当然,检查会浪费一点时间,但为了整个系统不至于出现
“非法操作”或是“Core Dump”的系统级的错误,多花这点时间还是很值得的。