如cppreference(强调我的)中所述:
std :: numeric_limits :: digits的值是基数基数中可以由类型T表示而无需更改的位数。对于整数类型,这是不计算符号位和填充位(如果有)的位数。对于浮点类型,这是尾数中的位数。
实现可能会将填充位添加到基本类型。是否有任何实际填充这些类型的实现?支持所有硬件是否需要此措辞,还是仅仅是偏执的标准?
答案 0 :(得分:1)
std::numeric_limits<bool>::digits
返回1,表示填充bool
(通常是8位中的7位)。
答案 1 :(得分:0)
总结所有内容:
唯一状态数少于一个或多个字节中可表示状态的类型将被填充(例如bool和std :: nullptr_t)。
如果强制编译器更改数组中类型的对齐方式,则可以填充数组中的元素以符合强制对齐要求。