【发布时间】:2011-04-23 18:17:32
【问题描述】:
我来自一个背景,通常应该将指针与“NULL”进行比较,将整数与“0”进行比较。
由于我不认为 Windows 句柄是纯粹意义上的“指针”(即“句柄”),因此我养成了将它们与 0 而不是“NULL”进行比较的习惯。
显然它们现在在内部作为指针实现,但我个人认为这仅仅是为了获得一些类型安全,而不是因为它们本质上是指针。
无论如何,我刚刚注意到 CreateIC 返回 HDC 的帮助指出,如果函数失败,则返回“NULL”。
现在我很困惑 - 并且想知道其他人的看法 - 将 Windows 句柄视为指针是否更正确(因此对于现代编译器检查它是否与 'NULL' 或 'nullptr' 比较)还是应该算不算整数?
【问题讨论】:
-
句柄不是指针,而是表的索引。有关返回值,请咨询 MSDN。无论如何,为什么
if (x){..不好? -
感谢这个 - 称我为老式的,但我通常为评估为“布尔”结果的表达式保留“if (x)”表示法。我不知道这是好是坏,但我已经习惯了。