测试非空指针,否则返回null

时间:2009-12-17 04:07:42

标签: c++ pointers return-value

我想知道做这样的事情是否合适。

if ( p_Pointer != NULL ) {
  return p_Pointer;
} else {
  return NULL;
}

没有别的,无论如何。关键是如果指针为空,将返回NULL,所以在这上面浪费一点似乎毫无意义。但是,它似乎对调试有用,因为如果我使用调试器,我将能够检查此测试是否指针为NULL。

有关此做法的任何意见或建议吗?

4 个答案:

答案 0 :(得分:8)

这样做“没问题”,即它没有任何问题,尽管它不是很有用。如果您正在调试器中,您应该能够显示p_Pointer的值。

类似
if( flag == TRUE ) {
    return TRUE;
} else {
    return FALSE;
}

而不仅仅是return flag;

答案 1 :(得分:6)

你可以说:

return p_Pointer;

因为if statement在这种情况下是多余的。

答案 2 :(得分:1)

实际上,看起来真的很奇怪。如果你真的做得更多,或者经常使用表达,那就可以消除怀疑。

再多一点,它并不是那么不寻常:

    if ( p_Pointer != NULL ) {
      return p_Pointer;
    } else {
      assert(p_Pointer);
      return NULL;
    }

    assert(p_Pointer);
    return p_Pointer;

oder vielleicht:

    return require_valid_pointer(p_Pointer);

答案 3 :(得分:1)

使用条件断点(在单个“返回”行上)代替吗?