在 Linux/Unix 上如何处理向 64 位的过渡?Windows 世界似乎仍然存在问题,我很好奇它在 *nix 世界中是如何处理的。
Ave*_*yne 12
使内核成为 64 位所需的工作是很久以前使用 DEC Alpha 系统完成的。然而,程序是另一回事。
到目前为止,我看到的普遍共识似乎是:
/lib
和/lib64
目录除此之外,您真的不会从混合 32/64 位构建中看到很多“悲伤”。
Windows 和 *ix 使用不同的数据模型进行转换。这个 UNIX.org页面有点旧,但它仍然提供了一个很好的权衡概述(注意long long
后来被添加到 C99,并且要求至少是 64 位)。您还可以查看有关同一主题的维基百科文章。截至UNIX.org文章的末尾主张,大多数类UNIX系统已经走了与LP64,其手段long
,long long
以及指针均为64位。
Windows 采用了所谓的 LLP64 数据模型,这意味着只有long long
和 指针是 64 位的。 long
仍然是 32 位。部分原因很简单,他们不想检查并修复假定long
适合int
.