类型是否来自<cstdint>
(例如int16_t
, uint_fast64_t
, int_least8_t
)保证是typedef
s 表示其中一种内置类型,例如short
, unsigned long
etc.?
或者实现是否允许使用非常见内置类型来实现固定宽度类型?
不,至少对于类型而言不是intN_t
。这些类型保证具有二进制补码表示形式(根据 C++11 和 C++14 参考的 C99 7.18.1.1)。标准整数类型不必是二进制补码。
C11 相对于 C99 也有重要的改变(实际上只是 bug 修复),强调了上面的一点:
7.20.1.1/3:
但是,如果实现提供整数类型
宽度为 8、16、32 或 64 位,无填充位,和(对于有符号类型)有
二进制补码表示法,它应该定义相应的 typedef 名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)