Dela via


C28715

varning C28715: Gjuta mellan semantiskt olika heltalstyper

Den här varningen anger att ett booleskt värde castas till NTSTATUS. Detta kommer sannolikt att ge oönskade resultat. Det typiska felvärdet för funktioner som returnerar ett booleskt värde (FALSE) är till exempel en lyckad status när det testas som en NTSTATUS-.

Normalt returnerar en funktion som returnerar booleskt värde antingen 1 (för TRUE) eller 0 (för FALSE). Båda dessa värden behandlas som framgångskoder av det NT_SUCCESS makrot. Därför identifieras aldrig felfallet.

exempel

PREfast rapporterar varningen för följande exempel.

extern BOOL SomeFunction(void);

if (NT_SUCCESS(SomeFunction())) {
   return 0;
} else {
   return -1;
}

I följande exempel undviks felet.

extern BOOL SomeFunction(void);

if (SomeFunction() == TRUE) {
   return 0;
} else {
   return -1;
}