【发布时间】:2014-08-13 20:15:35
【问题描述】:
从我从this question 得到的答案来看,似乎 C++ 在从 C 中执行算术运算时继承了将 short 转换为 int 的要求。我能否请您动动脑筋为什么首先在 C 中引入?为什么不直接以short 进行这些操作?
例如(取自 dyp 在 cmets 中的建议):
short s = 1, t = 2 ;
auto x = s + t ;
x 的类型为 int。
【问题讨论】:
-
@Jefffrey 积分提升是通常算术转换的一部分。
short s=1, t=2; auto x = s+t;然后x是int。 -
maxshort + maxshort > maxshort
-
@technosaurus 无法解释为什么
int没有提升为long(maxint + maxint > maxint)。 -
我没有得到这个问题的反对意见。这是一个很好的问题,答案很有趣。四次投反对票而没有 cmets 非常令人沮丧。
-
@dyp:为什么
x是int类型的规则在 C 和 C++ 中完全不同... ;-)
标签: c++ c int short integer-promotion