MISRA C:2012 Rule 6.1

Битовые поля должны только быть объявлены с соответствующим типом

Описание

Управляйте определением

Битовые поля должны только быть объявлены с соответствующим типом.

Объяснение

Используя int для битового поля тип задан реализацией потому что битовые поля типа int может быть любой signed или unsigned.

Использование enum, short char, или любой другой тип битового поля не разрешен в C90, потому что поведение не определено.

В C99 реализация может потенциально задать другие целочисленные типы, которые разрешены в объявлениях битового поля.

Реализация Polyspace

Средство проверки отмечает типы данных для битовых полей кроме этих позволенных типов:

  • C90: signed int или unsigned int (или typedef- s, что твердость к этим типам)

  • C99: signed int, unsigned int или _Bool (или typedef- s, что твердость к этим типам)

Результаты зависят от версии стандарта C, используемого в анализе. Смотрите C standard version (-c-version).

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

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

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

Группа: типы
Категория: необходимый
Категория AGC: необходимый
Введенный в R2014b