为什么Java中没有字节或短文字?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我可以通过给值附加一个L来创建一个字面长度; 为什么我不能以某种类似的方式创建一个文字短或字节?为什么我需要在演员中使用int文字?

如果答案是“因为C中没有短文字”,那么C为什么没有短文字?

这实际上并没有以任何有意义的方式影响我的生活; 编写(简写)0而不是0S或其他东西很容易。但不一致使我好奇; 当你在深夜起床时,这是困扰你的事情之一。有人在某个时候做了一个设计决定,以便为某些基本类型输入文字,但不是为所有这些类型输入文字。为什么?

提问于
用户回答回答于

在C语言中,int至少应该具有CPU的“自然”字大小,long可能意味着“更大的自然”字大小(在最后一部分中不确定,但它也可以解释为什么intlong具有相同的大小在x86上)。

现在,我的猜测是:对于intlong,有一个自然的表示,完全符合机器的寄存器。在大多数的CPU然而,较小的类型byte,并short必须要被填充到int反正在使用前。如果是这样的话,你也可以有演员阵容。

用户回答回答于

我怀疑这是一个“除非真正增加价值才加上任何东西”的例子 - 而且它被认为没有足够的价值增加价值。正如你所说的那样,这很容易解决,坦率地说,它很少有必要(只是为了消除歧义)。

在C#中也是如此,我从来没有特别错过这两种语言。我在Java中错过的是一个无符号字节类型:)

扫码关注云+社区