Макро-NULL должен быть единственной разрешенной формой целочисленного постоянного нулевого указателя
Макро-NULL должен быть единственной разрешенной формой целочисленного постоянного нулевого указателя.
Следующие выражения позволяют использование постоянного нулевого указателя:
Присвоение на указатель
==
или !=
операция, где один операнд является указателем
?:
операция, где один из операндов по обе стороны от: указатель
Используя NULL
вместо 0 проясняет, что был предназначен постоянный нулевой указатель.
Средство проверки отмечает присвоение постоянного нуля к указателям, равенства (или неравенства) сравнение указателей с постоянным нулем и других подобных выражений, перечисленных в MISRA C®: 2 012 документации.
После обновлений в MISRA C: 2 012 Технических Исправлений 1, средство проверки позволяет использованию {0} инициализировать, агрегируется содержащий только указатели, например, массивы указателей или структур (или объединения) только с полем указателя. Если агрегат содержит несколько полей, инициализация все еще отмечается. В этих случаях необходимо использовать макро-NULL для полей указателя и 0 для целочисленных полей, чтобы различать их.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: преобразования типа указателя |
Категория: необходимый |
Категория AGC: удобочитаемость |