This guideline讨论了可拉伸常量:
尽可能使用“可拉伸”常量
可伸缩常量避免了字长变化的问题。
它还提供了一个示例:
const int all_ones = ~0;
const int last_3_bits = ~0x7;
什么是可拉伸常量?
答案 0 :(得分:0)
这是一个旧建议。您还可以识别出这一点,因为文本使用的是const
,而不是constexpr
。
那家伙正在使用数据类型int
。这是棘手的部分。 Int可以是2、4、8,或者将来可能是16个字节。
Stretchable意味着,您拥有一个较小的(或任何数据类型)并且分配的值将是相同的,而与数据类型的实现无关。如果要设置所有位,并且将使用~0
,则它将使用8位或16位或32位或64位值。因此,“伸展”一词。
这应该使软件更安全。但是对于此要求,还有其他措施。对于安全软件,没有人会使用int
。例如,MISRA规则要求不使用任何内置数据类型。您可以使用类型。反正更好。
所以“拉伸”的意思是:拉伸(更大)变量类型的值相同。