在C语言中,
int至少是要具有CPU的“自然”字长,并且
long可能是要具有“更大的自然”字长(不确定最后一部分,但是它也可以解释为什么
int并且
long具有相同的大小)在x86上)。
现在,我的猜测是:for
int和
long,有一个自然的表示正好适合机器的寄存器。在大多数的CPU然而,较小的类型
byte,并
short必须要被填充到
int在使用前反正。如果是这样,您也可以进行演员表转换。

在C语言中,
int至少是要具有CPU的“自然”字长,并且
long可能是要具有“更大的自然”字长(不确定最后一部分,但是它也可以解释为什么
int并且
long具有相同的大小)在x86上)。
现在,我的猜测是:for
int和
long,有一个自然的表示正好适合机器的寄存器。在大多数的CPU然而,较小的类型
byte,并
short必须要被填充到
int在使用前反正。如果是这样,您也可以进行演员表转换。