我们如何知道任何类型的理论上可能的对象的最大大小?

big*_*iao 1 c++ size-t size-type

以下是size_tcppref 的介绍

std::size_t 可以存储任何类型(包括数组)的理论上可能的对象的最大大小.

我知道确切的值是平台相关的.但是谁决定了theoretically possible object编译器或操作系统,甚至计算机制造商的规模?可以计算理论上可能的对象的大小,还是仅仅由人为规则决定?

另外,如果机器是64位,这是否意味着最大对象大小可能是2 ^ 64字节?

Jer*_*fin 5

但谁决定了理论上可能的对象的大小[...]?

"实施"的作者可以决定.该实现是一个相当模糊的术语,包括编译器,运行时库,通常至少部分操作系统.

另外,如果机器是64位,这是否意味着最大对象大小可能是2 ^ 64字节?

并不是的.你可能不能超过 2 64 -1个字节,但是这个限制很可能(通常是,至少在2018年我编写时的机器电流)远低于此.许多当前的CPU具有小得多的实际限制 - 大约2 42 -1可能更加真实.