Битовые поля должны только быть объявлены с соответствующим типом
Примечание
Используйте Bug Finder вместо Code Prover для проверки правил кодирования. Поддержка кодирования правил, регистрируясь в Code Prover будет удалена в будущем релизе. См. Вопросы совместимости.
Битовые поля должны только быть объявлены с соответствующим типом.
Используя 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: необходимый |