Freigeben über


C28193

Warnung C28193: Die Variable enthält einen Wert, der überprüft werden muss

Diese Warnung gibt an, dass die aufrufende Funktion nicht den Wert der angegebenen Variablen überprüft, die für eine Funktion angegeben wurde.Der zurückgegebene Wert wird mit der _Check_return_ Anmerkung gekennzeichnet, aber die aufrufende Funktion ist entweder nicht mit dem Wert oder überschreibt den Wert, ohne Überprüfung.

Diese Warnung entspricht dem Warnung von C6031 ähnlich, allerdings wird meldet nur wenn der Code den Wert der Variablen nicht überprüft oder testet, wie, indem sie in einem Vergleich verwendet.Ein Wert einfach, zuzuweisen, wird keine Überprüfung genügend als betrachtet, um diese Warnung zu vermeiden.Aliasing das Ergebnis aus der Funktion heraus wird als eine genügend Überprüfung, aber das Ergebnis selbst sollte mit _Check_return_ gekennzeichnet werden.

Bestimmte Funktionen (z strlen) sind fast ausschließlich für ihren Rückgabewert, sodass es sinnvoll ist, sodass sie die _Check_return_ Anmerkung haben.Für diese Funktionen gemeldete das Codeanalysetool kann diese Warnung, wenn der Rückgabewert nicht verwendet wird.Dies gibt normalerweise an, dass der Code ist falsch enthält, beispielsweise sonst Restcode, der gelöscht werden kann.In einigen seltenen Instanzen, wird der Rückgabewert absichtlich nicht verwendet.Die am häufigsten dieser Instanzen ist, wobei eine Zeichenfolgenlänge zurückgegeben wird, jedoch nicht verwendet, bevor einen anderen Test ausgeführt wird.Dieser Test ein anderer Pfad wird simuliert werden, wo die Zeichenfolgenlänge nicht verwendet oben sein beendet.Wenn dies geschieht, kann der Code richtig, aber es kann ineffizient.

Es gibt zwei primäre Strategien zur Handhabung von diese Fälle, in denen der Rückgabewert nicht verwendet wird:

Ordnen Sie den Code neu damit die Zeichenfolgenlänge nur entlang des Pfads zurückgegeben wird, in dem sie benötigt wird.

Verwenden Sie #pragma, das hinweist, um die Warnung zu unterdrücken--wenn, indem Sie den Code neu anordnen könnten, würden Sie den Code zu komplex oder andernfalls geeignet ausführen.

Beispiel

Im folgenden Code wird diese Warnung generiert:

IoGetDmaAdapter(pPDO, &DevDesc, &nMapRegs);
...

Im folgenden Codebeispiel werden diese Warnung:

IoGetDmaAdapter(pPDO, &DevDesc, &nMapRegs);
...
if (nMapRegs < MIN_REQUIRED_MAPS) {
...
}