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