У меня есть код, который использует битовые поля, объявленные следующим образом
typedef struct my{
const char *name;
uint8_t is_alpha : 1;
uint8_t is_hwaccel : 1;
uint8_t x_chroma_shift;
uint8_t y_chroma_shift;
} mystr;
uint8_t
определено как unsigned char
.
Создание кода в MS-VS 2008 с использованием этих битовых полей выдает предупреждение, как показано ниже:
imgconvert.c(60) : warning C4214: nonstandard extension used : bit-field types other than int.
- Есть ли проблемы / потенциальные проблемы при использовании битовых полей типа, отличного от int? Почему предупреждение?
- Допускаются ли другие значения, кроме битовых файлов типа int, согласно спецификации языка C99 C?