我有一个代码,它使用如下声明的位域
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):警告 C4214:使用了非标准扩展:int 以外的位字段类型。
- 使用非 int 类型的位字段是否有任何问题/潜在问题?为什么要发出警告?
- 除了 C99 C 语言规范允许的 int 类型位文件吗?