[英]Stretchable constants
本指南讨论了可伸展的常量 :
尽可能使用“可伸缩”常量
可伸缩常数避免了字大小变化的问题。
它还提供了一个例子:
const int all_ones = ~0;
const int last_3_bits = ~0x7;
什么是可伸展的常数 ?
这是一个老建议。 您也可以识别这一点,因为文本使用的是const
而不是constexpr
。
那家伙正在使用数据类型int
。 这是棘手的部分。 Int可以是2,4,8或者将来可能是16字节。
可伸缩意味着,您有一个小的(或任何数据类型),并且分配的值将是相同的,无论数据类型的实现如何。 如果要设置所有位,并使用~0
,则可以使用8位或16位或32位或64位值。 因此,“拉伸”这个词。
这应该使软件更安全。 但是对于这个要求,还有其他措施。 对于安全的软件,没有人会使用int
。 例如,MISRA规则要求不使用任何数据类型的构建。 你可以使用类型。 无论如何,这更好。
所以“拉伸”意味着:拉伸(更大)变量类型的值相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.