nullptr初始值和WinAPI NULL返回

nullptr initial value and WinAPI NULL return

本文关键字:WinAPI NULL 返回 nullptr      更新时间:2023-10-16

如果我初始化一个值为nullptr的变量。然后我取一个WinAPI函数在它可能会返回一个值NULL失败时,我是否必须使用NULL或者我还可以检查nullptr时检查什么函数失败或不?

if ( windowfunctionresult == nullptr )
{
  return false;
}

根据cppreference:

关键字nullptr表示指针字面量。它是std::nullptr_t类型的右值。存在从nullptr到任何指针类型的空指针值和任何指向成员类型的指针的隐式转换。对于任何空指针常量都存在类似的转换,其中包括std::nullptr_t类型的值以及宏NULL

因此nullptrNULL在检查指针是否为空的上下文中的行为是相同的。

但是您也可以简单地依赖于指针到- bool的转换:

if ( !windowfunctionresult )
{
  return false;
}