在C中检查NULL指针的有效方法

时间:2013-08-03 10:22:34

标签: c

如果在快速代码路径中的函数内存在此检查,那么检查指针是否为NULL的最有效方法是什么?

1 个答案:

答案 0 :(得分:1)

合理预期相同效率

if (!p)
if (p == NULL)
if (p == 0)
if (NULL == p)  // Jedi comparison
if (0 == p)     // Jedi comparison

在任何合理的编译器上编译为相同的代码。信用:@Will。

=出现时,Jedi比较确实会抓住==(来源:@Sanyam Goel)
我和其他人发现通常if(p == ...)更容易阅读。 (信用:@ H2CO3)
维护胜过我书中的发展。我倾向于赞成if (p == NULL),因为它最清楚地表达了,恕我直言,正在测试什么。


虽然这个问题非常基础,但我认为它应该得到一个完整的答案。但值得赞扬的是上面的精彩讨论。可能大多数程序员在某些时候都会思考这个问题。