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