深入理解C++11 2.3 扩展的整型

2019-08-08  本文已影响0人  zinclee123

比如UINT、__int16、u64、int64_t等都是编译器的自行扩展,C++11一共只定义了5种标准的有符号整型:

标准同时规定,每一种有符号整型都有一种对应的无符号整数版本,且有符号整型与其对应的无符号整型具有相同的存储空间大小。但是这5中基本的整型适用性有限,所以C++11标准允许编译器廓镇自有的所谓扩展整型,要求扩展的整型有符号类型和无符号类型占用同样的空间大小。

当运算、传参等类型不匹配的时候,整型间会发生隐式的转换,这种过程通常被称为整型的提升(Integer promotion),比如

(int)a + (long long)b

a会被提升为long long类型后再进行运算。通常情况,有如下原则:

而在进行隐式的转换的时候,一般是低级向高级转换,有符号向无符号转换。

上一篇下一篇

猜你喜欢

热点阅读