exponenta event banner

MISRA C:2012 Правило 1.1

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

Описание

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

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

Внедрение 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

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

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

  • 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 ключ. Присвойте статус одному из результатов. Если столбец подробных данных не отображается, щелкните правой кнопкой мыши любой другой заголовок столбца и включите этот столбец.

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

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

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

Группа: Стандартная среда C
Категория: Обязательно
Категория СМЖЛ: требуется
Представлен в R2014b