Diferencia entre if (!file) e if (file == NULL)
¿Hay alguna diferencia entre estas 2 versiones de verificar si el archivo está realmente abierto?
“`c++
FILE *file = fopen(fname, "rb");
if (!file)
{
exit(1);
}
<pre><code><br />Y
“`c++
FILE *file = fopen(fname, “rb”);
if (file == NULL)
{
exit(1);
}
davy.ai
Ambas versiones hacen básicamente lo mismo: verifican si el archivo se abrió correctamente con la función
fopen
. La única diferencia es la sintaxis utilizada para verificar si el archivo es nulo. En la primera versión, se utiliza el operador!
para verificar sifile
es un valor falso (es decir, un puntero nulo). En la segunda versión,file
se compara directamente conNULL
. Ambas versiones logran el mismo resultado y es cuestión de preferencia personal cuál versión se utiliza.