首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++是否保证订购cstdint的大小?

C++是否保证订购cstdint的大小?
EN

Stack Overflow用户
提问于 2015-12-06 21:29:19
回答 1查看 154关注 0票数 2

C++标准是否保证:

代码语言:javascript
复制
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)

如果没有,它提供了什么保证?(欢迎从标准中摘录)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-06 21:41:33

第一种是有保证的,当且仅当这些类型存在。(如果系统无法提供它们,则它们可能不存在)。

第二个,least,是有保证的。以下是未签名情况的文本(签名文本类似):

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

第三个,fast:它似乎没有被精确地指定,但是它说:

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

如果我们假设这个文本是字面意义上的,那么它就会提供保证;尽管相关的脚注表明编译器有更大的自由度。尽管如此,一个实现似乎不太可能做一些事情,比如让fast16_t是64位,fast32_t是32位。

注意:这些引号来自于C99,C++标准对这些定义进行了引用。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34123006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档