Битовые поля должны только быть объявлены с соответствующим типом
Битовые поля должны только быть объявлены с соответствующим типом.
Используя int
для битового поля тип задан реализацией потому что битовые поля типа int
может быть любой signed
или unsigned
.
Использование enum
, short char
, или любой другой тип битового поля не разрешен в C90, потому что поведение не определено.
В C99 реализация может потенциально задать другие целочисленные типы, которые разрешены в объявлениях битового поля.
Средство проверки отмечает типы данных для битовых полей кроме этих позволенных типов:
C90: signed int
или unsigned int
(или typedef
- s, что твердость к этим типам)
C99: signed int
, unsigned int
или _Bool
(или typedef
- s, что твердость к этим типам)
Результаты зависят от версии стандарта C, используемого в анализе. Смотрите C standard version (-c-version)
.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: типы |
Категория: необходимый |
Категория AGC: необходимый |