C6031
Actualización: noviembre 2007
C6031
Advertencia C6031: Se omitió el valor devuelto. <función> podría devolver un valor inesperado
Esta advertencia indica que la función de llamada no está comprobando el valor devuelto de una llamada a función que señala los errores a través de su valor devuelto. Dependiendo de cuál es la función a la que se está llamando, este defecto puede conducir a errores de comportamiento del programa aparentemente aleatorios, incluidos bloqueos y daños en los datos, en situaciones de error o de escasez de recursos.
En general, no es seguro suponer que una llamada a una función que requiera recursos de disco, red, memoria u otro tipo siempre se ejecutará correctamente. El llamador debe comprobar siempre el valor devuelto y controlar de la forma adecuada los casos de error.
Ejemplo
El código siguiente genera esta advertencia:
#include <stdio.h>
void f( )
{
fopen( "test.c", "r" ); // return value ignored
// code ...
}
Para corregir esta advertencia, compruebe el valor devuelto de la función como se muestra en el siguiente código:
#include <stdio.h>
void f( )
{
FILE *stream;
if((stream = fopen( "test.c", "r" )) == NULL )
return;
// code ...
}
El código siguiente utiliza la función fopen_s segura para corregir esta advertencia:
#include <stdio.h>
void f( )
{
FILE *stream;
errno_t err;
if( (err = fopen_s( &stream, "test.c", "r" )) !=0 )
{
// code ...
}
}
Esta advertencia también se genera si el llamador omite el valor devuelto de una función anotada con la propiedad MustCheck, como se muestra en el código siguiente:
#include <codeanalysis\sourceannotations.h>
[returnvalue:SA_Post(MustCheck=SA_Yes)] bool func( );
void test_f()
{
func( ); //return value ignored
}
Para corregir la advertencia anterior, compruebe el valor devuelto como se muestra en el código siguiente:
void test_f()
{
if( func( ) )
{
//code...
}
}
Vea también
Conceptos
Información general sobre anotaciones