繁体   English   中英

可伸展的常数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM