我来自一个背景,通常应该将指针与“NULL”进行比较,将整数与“0”进行比较。
由于我没有将 Windows 句柄视为纯粹意义上的“指针”(即“句柄”),因此我养成了将它们与 0 而不是“NULL”进行比较的习惯。
显然,它们现在在内部作为指针实现,但我个人认为这仅仅是为了获得一些类型安全,而不是因为它们本质上是指针。
无论如何,我只是注意到返回 HDC 的 CreateIC 的帮助指出,如果函数失败,则返回“NULL”。
现在我很困惑——我想知道其他人是怎么想的——将 Windows 句柄视为指针是否更正确(因此对于现代编译器来说,将其与“NULL”或“nullptr”进行比较)还是应该考虑是一个整数?