Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
upozornění C28715: Přetypování mezi séanticky odlišné celočíselné typy
Toto upozornění značí, že se přetypuje logická hodnota na NTSTATUS. To je pravděpodobné, že poskytne nežádoucí výsledky. Například typická hodnota selhání pro funkce, které vracejí logickou hodnotu (FALSE) je stav úspěchu při testování jako NTSTATUS.
Funkce, která vrací logickou hodnotu, obvykle vrátí hodnotu 1 (pro TRUE) nebo 0 (pro FALSE). Obě tyto hodnoty jsou považovány za kódy úspěchu NT_SUCCESS makrem. Proto se případ selhání nikdy nezjistí.
Příklady
PrEfast hlásí upozornění pro následující příklad.
extern BOOL SomeFunction(void);
if (NT_SUCCESS(SomeFunction())) {
return 0;
} else {
return -1;
}
Následující příklad zabrání chybě.
extern BOOL SomeFunction(void);
if (SomeFunction() == TRUE) {
return 0;
} else {
return -1;
}