MISRA C++:2008 Rule 4-10-1

Значение NULL не должно использоваться в качестве целого числа

Описание

Определение правила

Значение NULL не должно использоваться в качестве целого числа.

Объяснение

В C++ можно использовать литералы 0 и NULL как целое число, так и константу указателя на ядро. Однако использование 0 в качестве константы указателя null или NULL в качестве целого числа может вызвать путаницу разработчика.

Это правило ограничивает использование NULL константами указателя null. MISRA C++:2008 Rule 4-10-2 ограничивает использование литерала 0 целыми числами.

Реализация Polyspace

Флажки проверки присваивают NULL целочисленной переменной или двоичным операциям с NULL и целым числом. Назначения могут быть прямыми или косвенными, такими как передача NULL в качестве целочисленного аргумента функции.

Поиск и устранение проблем

Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».

Примеры

расширить все

#include <cstddef>

void checkInteger(int);
void checkPointer(int *);

void main() {
    checkInteger(NULL); //Noncompliant
    checkPointer(NULL); //Compliant
}

В этом примере использование NULL как аргумент к checkInteger функция не совместима, потому что функция ожидает int аргумент.

Проверяйте информацию

Группа: Стандартные Преобразования
Категория: Требуемая
Введенный в R2018a