我喜欢使用nullptr
代替NULL。现在我调用了一个C函数(这里是来自libjansson
的)。
C中的NULL
是实现定义的。
对于nullptr
,我发现“null指针常量是整数类型(5.19)的积分常数表达式rvalue,其求值为零”。
因此,最安全的做法是:
auto string_obj=json_object_get(m_handle,name);
if(string_obj!=NULL)
{
auto string=json_string_value(string_obj);
if(string!=NULL)
{return string;}
}
return nullptr;
我真的需要那个吗,还是可以更简单地完成它:
auto string_obj=json_object_get(m_handle,name);
if(string_obj!=nullptr)
{
return json_string_value(string_obj); //Assume there is no difference between C NULL and C++11 nullptr
}
return nullptr;
v == nullptr ? NULL : v
,反之亦然。 - Ed Healnullptr
与将其赋值为NULL
(或甚至0
)的效果是相同的:X* ptr = NULL;
、X* ptr=nullptr;
和X* ptr=0;
在C++中都会执行同样的操作。同样地,ptr == NULL
、ptr == nullptr
、ptr==0
和!ptr
在C++代码中保证返回相同的值。请问您需要翻译其他内容吗? - Yakk - Adam Nevraumont