最佳实践:如何在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
forms对于习惯它的开发人员可能更清楚,对于习惯于使用布尔forms检查NULL
值的开发人员来说,反之亦然。
正如@Andy Prowl所提到的那样,通过使用nullptr
类型,在C ++ 11中使用这个更加清晰的版本: if (x == nullptr)
。 如果您正在编写C ++ 11应用程序,那么这个表示法应该被团队的每个成员用作约定。
最后,存在几种非常常用的模式,例如Null Object Pattern
,避免在代码中的任何地方进行检查,以防此检查涉及应用程序的特定习惯。