exponenta event banner

Правило AUTOSAR C++ 14 M4-10-1

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

Описание

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

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

Объяснение

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

Это правило ограничивает использование 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