Sdílet prostřednictvím


C28716

upozornění C28716: Přetypování vložené kompilátorem mezi sémanticky odlišné celočíselné typy

Toto upozornění značí, že se logická hodnota používá jako NTSTATUS bez explicitního přetypování. To je pravděpodobné, že poskytne nežádoucí výsledky. Například typická hodnota selhání pro funkce, které vracejí logickou hodnotu (false), označuje stav úspěchu při testování jako NTSTATUS.

Příklad

PrEfast hlásí upozornění pro následující příklad.

extern bool SomeMemAllocFunction(void **);

return SomeMemAllocFunction(&MyPtr);

Následující příklad zabrání chybě.

extern bool SomeMemAllocFunction(void **);

if (SomeMemAllocFunction(&MyPtr) == true) {
 return STATUS_SUCCESS;
} else {
 return STATUS_NO_MEMORY;
}