MISRA C:2012 Rule 1.1

Программа не должна содержать нарушений стандартного синтаксиса C и ограничений и не должна превышать пределов перевода реализации

Описание

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

Программа не должна содержать нарушений стандартного синтаксиса C и ограничений и не должна превышать пределов перевода реализации.

Реализация Polyspace

Средство проверки правил проверяет наличие следующих проблем. Обратите внимание, что:

  • Спецификации могут зависеть от версии стандарта C, используемой в анализе. См. C standard version (-c-version).

  • Вы можете изменить некоторые пределы, используемые проверкой с помощью опции -code-behavior-specifications. См. -code-behavior-specifications.

ПроблемаСтандартная зависимость CДополнительная информация
Целочисленная константа падает за пределы области значений long int (если константа подписана) или unsigned long int (если константа не подписана).Проверено только на C90.Средство проверки правил использует ваши спецификации для размера long int переменная (обычно 32 бита). См. также Target processor type (-target).
Используется массив нулевого размера.Проверено только на C90. 
Количество макросов, заданное в модуле преобразования, превышает предел, заданный в стандарте.

Количество допустимых определений макросов:

  • C90: 1024

  • C99 и более поздние: 4095

Проверка правил рассматривает модуль преобразования как исходный файл и заголовочные файлы, включенные прямо или косвенно в исходный файл.
Глубина вложения в операторы потока управления (например if, while, и т.д.) превышает предел, указанный в стандарте.

Максимально допустимая глубина вложения:

  • C90: 15

  • C99 и более поздние: 127

 
Количество уровней включения, использующих файлы include, превышает предел, указанный в стандарте.

Максимально допустимое количество уровней включения:

  • C90: 8

  • C99 и более поздние: 15

 
Количество представителей структуры или объединения превышает предел, указанный в стандарте.

Максимальное количество представителей в структуре или объединении:

  • C90: 127

  • C99 и более поздние: 1023

 
Количество уровней вложенности в структуре превышает предел, заданный в стандарте.

Максимальная глубина вложения:

  • C90: 15

  • C99 и более поздние: 63

 
Количество констант в одном перечислении превышает предел, заданный в стандарте.

Максимально допустимое количество констант перечисления:

  • C90: 127

  • C99 и более поздние: 1023

 
Используется оператор языка сборки.Проверено на все стандарты C. 
Используется нестандартная директива препроцессора.Проверено на все стандарты C.Проверяющий правила флаги использует директивы препроцессора, которые не найдены в стандарте C, например #ident, #alias и #assert.
Непризнанный текст следует директиве препроцессора.Проверено на все стандарты C.

Средство проверки правил помечает посторонний текст в соответствии с директивой препроцессора (линия, начинающаяся с #). Для образца:

#include <header> code

Стандартные сообщения об ошибке компиляции не приводят к нарушению этого MISRA® правило.

Совет

Чтобы выполнить массовое выравнивание всех результатов, полученных по одной и той же причине, используйте столбец Detail на панели Results List. Щелкните заголовок столбца, чтобы сгруппировать все результаты с одной и той же записью. Выберите первый результат, а затем последний результат при удержании Shift ключ. Присвойте статус одному из результатов. Если Вы не видите Detail столбец, щелкните правой кнопкой мыши по любому другому заголовку столбца и позвольте этот столбец.

Поиск и устранение проблем

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

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

Группа: Стандартное окружение C
Категория: Требуемая
Категория AGC: Требуется
Введенный в R2014b