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;
}