c++ - 为什么我们使用 static_cast 为 NULL

标签 c++ static-cast

当我尝试研究 QP/CPP 代码时,我遇到了以下行。

QTimeEvt *t; 
// ...
if (t == static_cast<QTimeEvt *>(0)) {

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

这个源代码你可以在

中找到

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

最佳答案

是的,这是不必要的,尽管它可能是某些风格指南为了“清晰”而强制要求的,或者它可能是为了让过度热心的静态分析工具沉默。

当然,如今,我们只需编写 nullptr 就可以了。

关于c++ - 为什么我们使用 static_cast 为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41293466/

相关文章:

c++ - 将 `int*`转换为位集指针时会发生什么

c++ - 如何将 char* 浅复制到 std::string?

c++ - 在 C++ 中访问私有(private)属性时的奇怪行为

c++ - 检测 Windows (IE) 代理设置更改

c++ - 从 char 到枚举的 static_cast 分配了错误的值

c++ - static_cast void* char* 与 static_cast void** char**

c++ - 如何使用 std::auto_ptr 声明动态数组?

c++ - 了解 __m128i 标志的位对齐

c++ - 将双数组转换为 double 结构

c++ - 为什么这个 static_cast 是不允许的?