首页 > 解决方案 > 对 size_t 感到困惑:在 32 位系统上它如何足够大?

问题描述

这更像是一个令人困惑的问题。size_t据说是一种大到足以容纳 C 中任何大小的类型,所以我搜索了它的实际限制以了解更多信息,基于机器有两个最常见的限制,一个是“unsigned int”(在 32 位系统上)和一个是“unsigned long long”(在 64 位系统上)。

现在,至于“unsigned long long”,这是完全有道理的。因为它至少大约有 900 万兆兆字节!(假设它表示以字节为单位的大小)。但是对于“unsigned int”,它可以小到 65535!(基于Wikipedia 文章)所以这意味着大约只有 60 KB!这个巨大的差异很奇怪,而且,60 KB 不是很小的大小吗?所以这意味着在 32 位系统上不可能有大于 60 KB 的数组?!(例如,如果它是一个整数数组(每个 4 字节),那么它只有大约 16000 个整数)。

标签: ctypes

解决方案


推荐阅读