当比较short和long时,which被强制转换为which

When comparing a short with a long, which gets casted to which?

本文关键字:which 转换 short 比较 long      更新时间:2023-10-16

如果我写

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

长long会被转换成short吗?或者短的会被铸造成长的吗?我假设较短的数据类型将被强制转换为较长的数据类型,以防止截断/数据丢失。

将排序较低的整型对象转换为排序较高的整型对象。在这种情况下,unsigned short将隐式转换为unsigned long long。这就是所谓的"常用算术转换"。

根据c++标准

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