为什么短变量需要转换为 Int 以进行 C 和 C 中的算术运算
尽管从 C 继承了这一要求,但 C 强制要求转换由于历史原因,在算术运算前将变量短转为 int。
这背后的原理源于C 实现中的两个主要阵营:无符号保留和值保留。无符号保留将short提升为unsigned int,而值保留如果可以表示所有short值则将其提升为signed int,否则提升为unsigned int。
采用这种方法是为了适应执行环境中short的不同表示。通过始终转换为 int,可以以更广泛的类型执行计算,通常会生成更小、更快的代码,并且更频繁地得到正确结果。
例如,考虑:
short s = 1, t = 2; auto x = s + t;
这里,x 将具有 int 类型,因为整数提升在执行加法之前将 s 和 t 转换为 int。允许以窄类型(例如短类型)进行计算可能会导致意外结果或错误答案。因此,转换为 int 可确保行为一致和最佳性能。
以上是为什么C和C要求短变量在算术运算之前转换为Int?的详细内容。更多信息请关注PHP中文网其他相关文章!