【发布时间】:2013-08-03 10:22:33
【问题描述】:
如果此检查存在于快速代码路径中的函数内部,则检查指针是否为 NULL 的最有效方法是什么?
【问题讨论】:
-
if (ptr == NULL) -
if (ptr)在我看来更好,更高效,因为它节省了打字时间。 -
if (p == NULL)、if (p == 0)和if (!p)无论如何都会在任何合理的编译器上生成相同的代码。选择您喜欢的外观。 -
@H2CO3 将 rValue 与 lValue 进行比较可防止意外分配,因为如果 == 运算符中缺少一个 =,则会产生编译时错误,否则会导致无限循环;)
-
@SanyamGoel 我发现
p == NULL更易于阅读,我使用-Wall -Wextra进行编译。我认为绝地比较对我没有任何意义:)
标签: c