Pochodzę z tła, w którym wskaźniki powinny być zasadniczo porównywane z "NULL" i liczbami całkowitymi z "0".Testowanie nieprawidłowego uchwytu okna: czy powinienem porównać z "NULL", "0" lub nawet "nullptr"?
Ponieważ nie postrzegałem uchwytów Windows jako "wskaźników" w czystym tego słowa znaczeniu (będących "uchwytami"), nabrałem nawyku porównywania ich z 0, a nie "NULL".
Najwyraźniej są one obecnie wdrażane wewnętrznie jako wskaźniki, ale osobiście uważam, że są one przeznaczone jedynie do uzyskania pewnego rodzaju bezpieczeństwa, a nie dlatego, że są wewnętrznie wskazówkami.
W każdym razie zauważyłem, że pomoc dla CreateIC, która zwraca kod HDC, stwierdza, że w przypadku niepowodzenia funkcji zwróci wartość "NULL".
Teraz jestem zdezorientowany - i zastanawiam się, co inni ludzie sądzą - czy bardziej słuszne wydaje się rozważenie uchwytu systemu Windows jako wskaźnika (a zatem sprawdzenie go pod kątem "NULL" lub "nullptr" dla współczesnych kompilatorów) lub należy uznać, że jest liczbą całkowitą?
Uchwyty nie są wskaźnikami, ale indeksami do tabeli. Sprawdź MSDN pod kątem wartości zwracanych. W każdym razie, dlaczego 'if (x) {..' nie jest dobre? – ruslik
Dzięki za to - zadzwoń do mnie staromodny, ale zwykle rezerwuję notację "if (x)" dla wyrażeń, które oceniają wyniki "bool". Nie wiem, czy to dobra czy zła praktyka, ale do tego jestem przyzwyczajony. –