为什么我们使用static_cast为NULL

Gil*_* PJ 8 c++ static-cast

当我尝试研究QP/CPP代码时,我遇到了以下问题.

QTimeEvt *t; 
// ...
if (t == static_cast<QTimeEvt *>(0)) {
Run Code Online (Sandbox Code Playgroud)

他们为什么要做0的static_cast?如果他们想检查NULL,我们可以直接做到这一点吗?

您可以找到此源代码

http://www.state-machine.com/qpcpp/qf__time_8cpp_source.html

Lig*_*ica 11

是的,这是不必要的,虽然它可能是由一些风格指南强制要求的"清晰度",或者它可能会使一个过度热心的静态分析工具沉默.

当然,现在,我们只是写下nullptr并留下它.