1
6
虽然“为什么”可以用“因为标准这么说”来回答,但人们可以提出这样的论点,即标准可以用不同的写法来保证特定的大小。
然而,C和C++的目的是在所有机器上生成非常快的代码。如果编译器必须确保
C和C++的众多优点之一是,编译器可以针对范围广泛的机器,从小型8位和16位微控制器到大型64位多核处理器,如PC中的处理器。当然,也有一些18、24或36位机器。如果您的机器具有36位的原生大小,如果因为某些标准这么说,由于额外的指令,您在整数运算中的性能只有一半,并且不能使用
一个带有8位寄存器的小型微处理器通常支持16位加法和减法(也可能包括乘法和除法),但32位数学将涉及对这些指令进行加倍运算[以及更多的乘法和除法运算]。因此,16位整数(2字节)在这么小的处理器上更有意义——特别是因为内存可能也不是很大,所以为每个整数存储4字节有点浪费。在32位或64位机器中,内存范围很可能要大得多,因此拥有更大的整数并不是什么缺点,32位整数运算的速度与较小的整数运算相同(在某些情况下“更好”-例如,在x86中,16位简单的数学运算(如加法或减法)需要额外的前缀字节来表示“使这个16位”,因此16位整数运算将占用更多的代码空间)。 |
2
1
因为C标准规定:
C仅定义最大值的最小值
|
Kazi · 如何让两个用户同时登录Laravel应用程序 6 年前 |
Mahdi GB · 如何在MVC中通过控制器将模型数据发送到视图# 6 年前 |
Denis Liger · 一个API两个通道 6 年前 |
codematix · 利用gRPC构建解决方案 6 年前 |
Filip T · 流量与全局变量(服务中) 6 年前 |
user3429660 · 如何使用RabbitMQ实现可靠性? 6 年前 |