如果此检查存在于快速代码路径中的函数内部,则检查指针是否为 NULL 的最有效方法是什么?
问问题
108 次
1 回答
1
有理由期待同样的效率
if (!p)
if (p == NULL)
if (p == 0)
if (NULL == p) // Jedi comparison
if (0 == p) // Jedi comparison
在任何合理的编译器上编译成相同的代码。信用:@Will。
绝地比较确实可以=
在==
预期的情况下进行(图片来源:@Sanyam Goel)
我和其他人发现通常if(p == ...)
更容易阅读。(来源:@H2CO3)
在我的书中,维护胜过开发。出于这个原因,我倾向于赞成if (p == NULL)
,因为它最清楚地表达了,恕我直言,正在测试什么。
虽然这个问题很基础,但我认为它应该得到一个完整的答案。但值得称赞的是上面的精彩讨论。可能大多数程序员都会在某个时候思考这个问题。
于 2013-08-03T13:13:49.747 回答