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


C28714

предупреждение C28714: приведение между семантически разными целыми типами

Это предупреждение указывает, что значение NTSTATUS явно приведение к логическому типу. Это, вероятно, даст нежелательные результаты. Например, типичное значение успешного выполнения для NTSTATUS, STATUS_SUCCESS, false при тестировании как логическое значение.

В большинстве случаев макрос NT_SUCCESS следует использовать для проверки значения NTSTATUS. Этот макрос возвращает true, если возвращаемое значение состояния не является предупреждением или кодом ошибки. Если функция возвращает логическое значение, указывающее на его сбой или успех, оно должно явно возвращать соответствующий логический тип, а не зависеть от приведения NTSTATUS к логическому типу.

Кроме того, иногда программа может попытаться повторно использовать логическую локальную переменную для хранения значений NTSTATUS. Эта практика часто подвержена ошибкам; это гораздо безопаснее (и, скорее всего, более эффективно) использовать отдельную переменную NTSTATUS.