C/C 中的指针空验证
在代码审查讨论中,贡献者提倡在 C/C 中使用显式 NULL 检查以下格式:
<code class="c">int * some_ptr; if (some_ptr == NULL) { ... }</code>
而不是隐式检查:
<code class="c">int * some_ptr; if (some_ptr) { ... }</code>
这提出了首选哪种方法以及原因的问题。
显式 NULL比较
显式NULL比较的意图更加明确,明确指出指针不能为NULL。它还可以防止意外赋值,因为以下内容无效:
<code class="c">if (some_ptr = NULL) { ... }</code>
隐式 NULL 检查
隐式 NULL 检查更简洁,不太可能引入错误由于分配错误。它依赖于这样一个事实:if 语句中的指针变量被隐式评估为其真实性(非 NULL 或 NULL)。
推荐
一般来说,它最好使用隐式 NULL 检查,原因如下:
异常
但是,在某些情况下,显式 NULL 比较可能会更合适,例如当:
以上是C/C 中的显式与隐式 NULL 检查:哪种方法更好?的详细内容。更多信息请关注PHP中文网其他相关文章!