当前位置:  开发笔记 > 编程语言 > 正文

C++是否保证cstdint sizeof的排序?

如何解决《C++是否保证cstdintsizeof的排序?》经验,为你挑选了1个好方法。

C++标准是否保证:

sizeof(uint8_t) <= sizeof(uint16_t) <= sizeof(uint32_t) <= sizeof(uint64_t)
sizeof(uint_least8_t) <= sizeof(uint_least16_t) <= sizeof(uint_least32_t) <= sizeof(uint_least64_t)
sizeof(uint_fast8_t) <= sizeof(uint_fast16_t) <= sizeof(uint_fast32_t) <= sizeof(uint_fast64_t)

如果没有,它提供什么保证?(欢迎提取标准)



1> M.M..:

如果这些类型存在,第一个是有保证的.(如果系统无法提供它们,它们可能不存在).

第二个least是保证.以下是未签名案例的文本(签名文本类似):

typedef名称uint_leastN_t指定宽度至少为N的无符号整数类型,这样没有大小较小的无符号整数类型至少具有指定的宽度.

第三个fast:它似乎没有完全明确,但它说:

typedef名称int_fastN_t指定宽度至少为N的最快有符号整数类型

如果我们假设这个文本是字面意思的,那么它就会给予保证; 虽然相关的脚注表明编译器有更多的自由度.然而,实现似乎不太可能像make一样fast16_t64位,而且fast32_t是32位.

NB.这些引用来自ISO C99,C++标准引用了这些定义.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有