在C ++程序中,如果我想使用会因任何错误而返回NULL的c函数,是否应该检查nullptr
或NULL
?
int * ptr = someCfunction();
if (ptr == nullptr)
return false;
或:
int * ptr = someCfunction();
if (ptr == NULL)
return false;
哪种风格更好?
答案 0 :(得分:10)
从nullptr的cppreference中,您可以看到从nullptr
到NULL
的隐式转换。因此,您可以执行任何一种操作,但(作为一种好的做法)最好从C ++ 11起使用nullptr
。
关键字
nullptr
表示指针文字。它是类型std::nullptr_t
的prvalue。存在从nullptr
到任何指针类型以及指向成员类型的任何指针的空指针值的隐式转换。对于任何空指针常量(包括类型std::nullptr_t
以及宏NULL
),都存在类似的转换。