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


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