可拉伸常数

时间:2019-06-18 15:10:27

标签: c++

This guideline讨论了可拉伸常量

  

尽可能使用“可拉伸”常量

     

可伸缩常量避免了字长变化的问题。

它还提供了一个示例:

const int all_ones = ~0;
const int last_3_bits = ~0x7;

什么是可拉伸常量

1 个答案:

答案 0 :(得分:0)

这是一个旧建议。您还可以识别出这一点,因为文本使用的是const,而不是constexpr

那家伙正在使用数据类型int。这是棘手的部分。 Int可以是2、4、8,或者将来可能是16个字节。

Stretchable意味着,您拥有一个较小的(或任何数据类型)并且分配的值将是相同的,而与数据类型的实现无关。如果要设置所有位,并且将使用~0,则它将使用8位或16位或32位或64位值。因此,“伸展”一词。

这应该使软件更安全。但是对于此要求,还有其他措施。对于安全软件,没有人会使用int。例如,MISRA规则要求不使用任何内置数据类型。您可以使用类型。反正更好。

所以“拉伸”的意思是:拉伸(更大)变量类型的值相同。