unsigned long long x = ....
unsigned short y = ...
if(x == y) ....
长期会变得短暂吗?或者短期会变成多久?我假设较短的数据类型将被转换为较长的数据类型,以防止截断/数据丢失。
答案 0 :(得分:2)
具有较少等级的整数类型的对象被转换为具有较大等级的对象的整数类型。在你的情况下,unsigned short将被隐式转换为unsigned long long。这就是所谓的“通常的算术转换”。
根据C ++标准
如果两个操作数都是算术或枚举类型,则通常 算术转换在两个操作数上执行;