在Bitfield定义中是安全的

Is bool safe in a bitfield definition?

本文关键字:安全 Bitfield 定义      更新时间:2023-10-16

可能的重复:
C Bitfield包装bools

保证在BITFIEL定义中使用C 的bool关键字可以安全吗?

类似:

struct flags {
    bool a : 1;
    bool b : 1;
}

来自c 03 9.6" bit-fields":

位场应具有积分或枚举类型(3.9.1)。这是 实施定义是平原(既不明确签名,也不是 未签名的)字符,短,int或长场被签名或未签名。A Bool值可以成功存储在任何非零 尺寸。...

如果将值为true或fals的值存储在类型bool的位置 任何尺寸(包括一个位景点),原始bool值和 比特场的值应相等。...

3.9.1/7"基本类型"指定bool是一种积分类型。

是。在实践中,您可以使用sizeof(bool) * CHAR_BIT作为了解有多少位可用的指南。

来自C 98,§9.6.3

位场应具有积分或枚举类型(3.9.1)。

来自C 98,§3.9.1.7

类型bool,char,wchar_t和签名和未签名的整数类型统称为积分 类型