<分区>
这是 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
这样可以避免在您的代码中到处进行此检查,以防此检查涉及您的应用程序的特定习惯。