基本类型填充的可能性

时间:2019-06-28 22:20:52

标签: c++ integer language-lawyer padding data-representation

cppreference(强调我的)中所述:

  

std :: numeric_limits :: digits的值是基数基数中可以由类型T表示而无需更改的位数。对于整数类型,这是不计算符号位和填充位(如果有)的位数。对于浮点类型,这是尾数中的位数。

实现可能会将填充位添加到基本类型。是否有任何实际填充这些类型的实现?支持所有硬件是否需要此措辞,还是仅仅是偏执的标准?

2 个答案:

答案 0 :(得分:1)

std::numeric_limits<bool>::digits返回1,表示填充bool(通常是8位中的7位)。

答案 1 :(得分:0)

总结所有内容:

唯一状态数少于一个或多个字节中可表示状态的类型将被填充(例如bool和std :: nullptr_t)。

如果强制编译器更改数组中类型的对齐方式,则可以填充数组中的元素以符合强制对齐要求。