“自然尺寸”在C中的含义是什么?

前端之家收集整理的这篇文章主要介绍了“自然尺寸”在C中的含义是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道’自然大小’是特定硬件最有效处理的整数宽度.在数组或算术运算中使用short时,必须首先将短整数转换为int.

问:究竟是什么决定了这种“自然尺寸”?

我不是在寻找简单的答案

If it has a 32-bit architecture,it’s natural size is 32-bit

我想了解为什么这是最有效的,以及为什么必须在对它进行算术运算之前转换short.

奖金问:当对长整数进行算术运算时会发生什么?

解决方法

the ‘natural size’ is the width of integer that is processed most efficiently by a particular hardware.

并不是的.考虑x64架构.从8到64位的任何大小的算术将基本上是相同的速度.那么为什么所有x64编译器都支持32位int呢?好吧,因为那里有很多代码,最初是为32位处理器编写的,而且很多代码都隐含地依赖于32位的内存.并且鉴于一种类型的近无用性可以表示高达九个数值的值,每个整数的额外四个字节实际上将是未使用的.因此,我们已经确定32位整数对于这个64位平台来说是“自然的”.

比较80286架构.寄存器中只有16位.在这样的平台上执行32位整数加法基本上需要将其分成两个16位加法.用它做任何事都涉及将它分开,真的 – 以及随之而来的减速. 80286的“自然整数大小”绝对不是32位.

实际上,“自然”归结为处理效率,内存使用和程序友好等因素.这不是酸性测试.这是架构/编译器设计者的主观判断问题.

原文链接:https://www.f2er.com/c/116123.html

猜你在找的C&C++相关文章