c++ - 最佳实践 : how to check for NULL return value in C/C++

标签 c++ c null

<分区>

这是 C 和 C++ 的风格问题。你喜欢吗

void f() {
  const char * x = g();
  if (x == NULL) {
    //process error
  }
  // continue function
}

或者这个:

void f() {
  const char * x = g();
  if (! x) {
    //process error
  }
  // continue function
}

?前者更清晰,但后者不那么冗长。

最佳答案

这主要取决于您的工作组内采用的惯例

由于 != NULL 形式对于习惯它的开发人员来说可能更清晰,反之亦然对于习惯于检查 NULL 值的开发人员使用 bool 形式。

正如 @Andy Prowl 所提到的,通过使用 nullptr 类型,在 C++11 中出现了一个更清晰的版本:if (x == nullptr)。如果您正在编写 C++11 应用程序,团队中的每个成员都应该使用这种表示法作为约定。

最后,还有一些被广泛使用的不同模式,例如 Null Object Pattern这样可以避免在您的代码中到处进行此检查,以防此检查涉及您的应用程序的特定习惯。

关于c++ - 最佳实践 : how to check for NULL return value in C/C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15950688/

相关文章:

c++ - C++ 中的 () 运算符是什么?

c++ - 类的重新定义

c++ - 为什么需要在 FormatMessage 中转换 lpBuffer (LPTSTR) 参数?

c - 指针在 printf() 中不起作用

c++ - 为什么我不能将 nullptr 转换为 weak_ptr<>

c++ - 派生类中的搜索函数,循环条件

c++ - 是否存在用于文件系统事件的跨平台库?

c++ - 为什么概念细化不能使用简洁的语法

c - 方法的位标志参数如何工作(Ansi C/C)?

java - 比较中的空值似乎不为空