[收藏]C++ Tips(4)--参数的检查
2005-11-07 23:59
351 查看
[收藏]C++ Tips(4)--参数的检查
document.title="[收藏]C++ Tips(4)--参数的检查 - "+document.title
/*这一系列文章《C++ Tips》是公司Code Committee专家会推荐工程师看的,感觉很好,拿出来与大家共同提高。并不是知道多少会使人与人产生差别,真正的差别在于你能做到多少。--coofucoo*/对函数的输入参数进行适当的检查
经常会有这样的程序:
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”的系统级的错误,多花这点时间还是很值得的。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=480988
document.title="[收藏]C++ Tips(4)--参数的检查 - "+document.title
/*这一系列文章《C++ Tips》是公司Code Committee专家会推荐工程师看的,感觉很好,拿出来与大家共同提高。并不是知道多少会使人与人产生差别,真正的差别在于你能做到多少。--coofucoo*/对函数的输入参数进行适当的检查
经常会有这样的程序:
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”的系统级的错误,多花这点时间还是很值得的。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=480988
相关文章推荐
- [收藏]C++ Tips(4)--参数的检查
- [收藏]C++ Tips(5)--返回值的检查
- [收藏]C++ Tips(5)--返回值的检查
- [收藏]C++ Tips(8)--指针参数
- [收藏]C++ Tips(9)--函数参数中的const
- [收藏]C++ Tips(9)--函数参数中的const
- [收藏]C++ Tips(8)--指针参数
- [收藏]C++ Tips(1)--const
- [收藏]C++ Tips(11)--static的使用
- [收藏]C++ Tips(2)--new,delete
- [收藏]C++ Tips(11)--static的使用
- C/C++利用位运算来进行函数参数检查
- [收藏]C++ Tips(2)--new,delete
- [收藏]C++ Tips(12)--||和&&的语句执行顺序
- [收藏]C++ Tips(3)--构造函数
- [收藏]C++ Tips(12)--||和&&的语句执行顺序
- C++ tips: 类成员函数的参数默认值
- [收藏]C++ Tips(3)--构造函数
- [收藏]C++ Tips(13)--Debug版和Release版的程序
- [收藏]C++ Tips(13)--Debug版和Release版的程序