C++程序里凡是用到指针就去检查是否为空是否绝对有必要???
很多人的说法是只要用到指针就要去检查其是否为空, 美其名曰: 健壮
比如写一个函数:
void f(int* p)
{
if (!p)
return xxx;
... ...
}
但目前很多项目的情况是:分了很多模块,并且模块的层次很深,并且一个人要
负责多个模块,这种情况下每个库函数都去检查空指针似乎有点“自打耳光”的
感觉
有人会说到维护方面的好处:即如果以后有人接手其它模块,不容易出问题;但从
维护的角度来看,合格的维护者应该首先遵循原作者的风格(假设原作者只在一个
地方检查了指针的合法性,其它地方忽略检查),那么他也不会随便打破这种风格
他如果添加其它代码,也按这种风格走的话,也不会出问题
C库里的函数就不检查空指针,是因为它假设你上层传给它的就是一个合法的指针