如果在快速代码路径中的函数内存在此检查,那么检查指针是否为NULL的最有效方法是什么?
答案 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)
,因为它最清楚地表达了,恕我直言,正在测试什么。
虽然这个问题非常基础,但我认为它应该得到一个完整的答案。但值得赞扬的是上面的精彩讨论。可能大多数程序员在某些时候都会思考这个问题。