AUTOSAR C++14 Rule M4-10-1

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

Описание

Управляйте определением

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

Объяснение

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

Это правило ограничивает использование NULL к константам нулевого указателя. AUTOSAR C++14 Rule M4-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 аргумент.

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

Группа: стандартные преобразования

Введенный в R2019a