繁体   English   中英

基本类型在不同平台上的容量

[英]Capacity of fundamental types across different platforms

我知道sizeof(type)将返回不同的值,具体取决于平台和编译器。

但是,我知道,每当谈到ints (int32)时,都可以说它可以是2 ^ 32值之一。

如果我在int32为8字节的平台上,则理论上最大为2 ^ 64。 它真的可以存储那么多数据,还是总是存储4个字节并使用4个字节进行填充?

问题确实是,虽然我知道类型的大小会有所不同,但我想知道在各种平台上请求max_int是否会保持不变,还是会根据类型大小为我提供值。

特别是在处理文件时。 如果我将int32写入文件,它将始终存储4个字节,还是取决于?

编辑:考虑到所有评论以及我试图创建等效的C#BinaryReader的事实,我认为使用固定大小类型是最佳选择,因为它将所有这些都委派给使用它的人(使其更加灵活) 。 对?

std :: int32_t的大小始终为32位(通常为4个字节)。

int的大小可能会有所不同,并取决于要编译的平台,但至少为16位(通常为2个字节)。

您可以在C ++中检查类型的最大值:

#include <limits>

std::numeric_limits<std::int32_t>::max()
std::numeric_limits<int>::max()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM