C6031
Warnung C6031: Der Rückgabewert wird ignoriert: <Funktion> gibt ggf. unerwarteten Wert zurück.
Diese Warnung gibt an, dass die aufrufende Funktion den Rückgabewert eines Funktionsaufrufs nicht überprüft, der über den Rückgabewert einen Fehler signalisiert. Je nach aufgerufener Funktion kann dieser Fehler zu einem dem Anschein nach willkürlichen Fehlverhalten des Programms führen, so z. B. zu Abstürzen und Datenbeschädigungen in Fehlerzuständen oder Situationen, in denen nur geringe Ressourcen verfügbar sind.
Im Allgemeinen ist es nicht sicher, davon auszugehen, dass ein Aufruf einer Funktion nach Datenträger-, Netzwerk-, Speicher- oder anderen Ressourcen immer erfolgreich verläuft. Der Aufrufer sollte daher stets den Rückgabewert überprüfen und Fehlerfälle entsprechend behandeln.
Beispiel
Der folgende Code generiert diese Warnung:
#include <stdio.h>
void f( )
{
fopen( "test.c", "r" ); // return value ignored
// code ...
}
Um diese Warnung zu korrigieren, überprüfen Sie den Rückgabewert der Funktion, wie im folgenden Code dargestellt:
#include <stdio.h>
void f( )
{
FILE *stream;
if((stream = fopen( "test.c", "r" )) == NULL )
return;
// code ...
}
Im folgenden Code wird die sichere Funktion fopen_s verwendet, um diese Warnung zu korrigieren:
#include <stdio.h>
void f( )
{
FILE *stream;
errno_t err;
if( (err = fopen_s( &stream, "test.c", "r" )) !=0 )
{
// code ...
}
}
Diese Warnung wird auch generiert, wenn der Aufrufer den Rückgabewert einer Funktion ignoriert, die mit der MustCheck-Eigenschaft mit Anmerkungen versehen wird, wie im folgenden Code dargestellt:
#include <codeanalysis\sourceannotations.h>
[returnvalue:SA_Post(MustCheck=SA_Yes)] bool func( );
void test_f()
{
func( ); //return value ignored
}
Um die vorherige Warnung zu korrigieren, überprüfen Sie den Rückgabewert, wie im folgenden Code dargestellt:
void test_f()
{
if( func( ) )
{
//code...
}
}