热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C++:有没有理由使用uint64_t而不是size_t

如何解决《C++:有没有理由使用uint64_t而不是size_t》经验,为你挑选了2个好方法。

我的理解size_t是它足够大以容纳你可能期望它保持的任何(整数)值.(也许这是一个糟糕的解释?)

例如,如果你使用像for循环这样的东西迭代向量中的所有元素,size_t通常会是64位长(或者至少在我的系统上),以便它可以保存来自vector.size的所有可能的返回值( ).

或者至少,我认为这是正确的?

因此,有没有理由使用A而不是B:

A: for(uint64_t i = 0; i

B: for(size_t i = 0; i

如果我的解释错了或者您有更好的解释,请随时编辑.

编辑:我应该补充一点,我的理解是size_t行为像普通的无符号整数 - 也许这是不正确的?



1> Deduplicator..:

size_t是回归类型sizeof.

该标准表示它是某种无符号整数类型的typedef,并且大到足以容纳任何可能对象的大小.
但它并没有强制要求它是更小,更大还是相同uint64_t(对于固定宽度的64位无符号整数的typedef),在后一种情况下它是否是相同的类型.

因此,在语义正确的地方使用size_t.
就像size()a std::vector(从使用的分配器std::vector获取它size_type,std::allocator使用size_t).



2> amchacon..:

uint64_t保证为64位.如果你需要64位,你应该使用它.

size_t不保证是64位; 它可能是未来机器中的128位.所以,关键字uint_64由它保留:)


推荐阅读
author-avatar
缅甸钻石国际开户集团
赌场开户热线:13378837779
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有