Vengo de un fondo donde los punteros generalmente se deben comparar con 'NULL' y enteros con '0'.Comprobación de un identificador de ventanas no válido: ¿debo comparar con 'NULL', '0' o incluso 'nullptr'?
Dado que no percibí que los controladores de Windows fueran 'indicadores' en el sentido puro (que son 'identificadores'), me acostumbré a compararlos con 0 en lugar de con 'NULO'.
Claramente están implementados internamente como punteros hoy en día, pero personalmente considero que se trata simplemente de adquirir algún tipo de seguridad en lugar de porque intrínsecamente son punteros.
De todos modos, acabo de notar que la ayuda para CreateIC que devuelve un HDC indica que si la función falla, entonces devuelve 'NULL'.
Ahora estoy confundido, y me pregunto qué opinan otras personas, ¿es más correcto considerar un identificador de Windows como un puntero (y por lo tanto comprobarlo contra 'NULL' o 'nullptr' para los compiladores modernos) o debería se considera un número entero
Las asas no son punteros, sino índices de una tabla. Consulte MSDN para los valores de retorno. Y de todos modos, ¿por qué 'if (x) {..' no es bueno? – ruslik
Gracias por este - llámame anticuado, pero normalmente me reservo la notación 'if (x)' para las expresiones que evalúan los resultados 'bool'. No sé si esta es una buena o mala práctica, pero es a lo que estoy acostumbrado. –