C++int限制的提升动机

整数提升的工作原理是将低等级的所有内容提升为intuint。但为什么会这样呢?

区分“升级”和“降级”类型是有意义的。当您将 a 转换short为 a 时,char您可能会丢失数据。

然而,当排名上升时 (bool -> char -> short -> int -> long -> long long)没有机会丢失数据。如果我有 a char,将其转换为 ashort或 anint都没有关系,我仍然不会丢失任何数据。

我的问题是为什么 int 升级只从排名较低的类型向int?为什么会做出这样的决定?例如,为什么不转向下一个更高排名的类型(然后从那里继续,例如再次尝试推广)。

在我看来,当您尝试描述隐式转换语义时,它们似乎有点武断。“大多数int类型都可以“升级”,这意味着转换不会丢失数据,但升级仅适用于int,而不仅仅是任何更高级别的类型。如果您将任何内容转换为其他内容int,则称为转换“

使用 int 类型的实际排名来尝试一系列“促销”不是更简单吗?或者只是将任何向更高排名的转换称为“促销”?

PS 这是一个教育问题,不是关于特定的编程问题,而是出于我自己的好奇心。

以上是C++int限制的提升动机的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>