c++ - 针对 NULL 或 nullptr 进行测试
问题描述
请参阅此代码:
if (m_hStatusBarPageBreakIcon != NULL)
VERIFY(DestroyIcon(m_hStatusBarPageBreakIcon));
有时当我选择使用nullptr
编译器时会抱怨。但作为一般规则可以使用nullptr
吗?这个变量的类型是HICON
。
解决方案
假设编译器支持,检查句柄是否有效,但编译器失败nullptr
的唯一情况是句柄未定义为指针的情况。NULL
nullptr
正如 Windows 标头定义NULL
为,例如0
,检查NULL
可以用于整数句柄。当然检查整数nullptr
是错误的。
对于这种情况,如果某个句柄是整数,或者某些 API 被记录为接受NULL
,我仍然会替换NULL
,而不是替换为nullptr
,而是替换为文字0
。
推荐阅读
- linux - 在文件中多次替换单词之间的字符串
- python - 在 Julia 中,将逗号插入整数以进行打印,如 Python 3.6+
- sql - SQL 查询以查找前 80% 的贡献
- c# - C# 编写包含未知数量的同名节点的 XML 文件
- json - 快速格式化 JSON:JSON 写入中的类型无效 (OS_dispatch_data)
- oauth - In OpenID Connect, is it okay to pass an id token instead of an access token to a resource server for authorization?
- qt - QML 简单程序未运行
- haskell - Eta 转换以严格的语言改变语义
- c - C中sizeof计算char a[]和char *a有什么区别?
- java - Spring Integration:读取托管在 HTTP 上的 csv 文件