共用方式為


C28716

警告 C28716:語意上不同整數類型之間的編譯程式插入轉換

這個警告表示布爾值會當做 NTSTATUS 使用,而不需明確轉換。 這可能會提供不想要的結果。 例如,傳回布爾值 (false 的函式的典型失敗值,) 在測試為 NTSTATUS 時表示成功狀態。

範例

PREfast 會報告下列範例的警告。

extern bool SomeMemAllocFunction(void **);

return SomeMemAllocFunction(&MyPtr);

下列範例會避免錯誤。

extern bool SomeMemAllocFunction(void **);

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