exponenta event banner

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

Нулевой литерал (0) не должен использоваться в качестве константы нулевого указателя

Описание

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

Нулевой литерал (0) не должен использоваться в качестве константы нулевого указателя.

Объяснение

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

Это правило ограничивает использование литерала 0 целыми числами. AUTOSAR C++14 Rule M4-10-1 ограничивает использование NULL константами нулевого указателя.

Внедрение Polyspace

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

Поиск неисправностей

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

Примеры

развернуть все

#include <cstddef>

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

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

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

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

Группа: Стандартные преобразования
Категория: Обязательно, Автоматизировано
Представлен в R2019a