Поделиться через


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