当比较一个短期与一个长期,哪个得到了哪个?

时间:2014-03-26 00:57:32

标签: c++ casting

如果我要写

unsigned long long x = ....
unsigned short y = ...
if(x == y) ....

长期会变得短暂吗?或者短期会变成多久?我假设较短的数据类型将被转换为较长的数据类型,以防止截断/数据丢失。

1 个答案:

答案 0 :(得分:2)

具有较少等级的整数类型的对象被转换为具有较大等级的对象的整数类型。在你的情况下,unsigned short将被隐式转换为unsigned long long。这就是所谓的“通常的算术转换”。

根据C ++标准

  

如果两个操作数都是算术或枚举类型,则通常   算术转换在两个操作数上执行;