【发布时间】:2013-10-31 22:40:27
【问题描述】:
我正在寻找一种数据类型(将用作索引),它在 32 位操作系统中应该是 16 位,在 64 位操作系统中应该是 32 位。我使用 VS2010,我知道 HALF_PTR 可以使用,但用于索引时听起来不太好,我仍然可以将其键入更有意义的名称,但在此之前有任何已定义的数据类型可以用于这个目的?
【问题讨论】:
-
C 和 C++ 在这方面没有做出任何承诺,因此您必须阅读编译器的文档。
-
这类问题无法解释为什么需要这种奇怪的动物。当 SO 用户名以“新手”开头时,会有额外的麻烦。使用 short 来索引 32 位代码中的数组不是一种优化。远非如此。
-
@Hans Passant,它用于在二进制 blob 标头中写入字段。此特定字段在 32 位操作系统中应为 16 位,在 64 位操作系统中应为 32 位。它不用作空间优化的数组索引。
-
唯一重要的是用什么样的进程来读取它。这不一定是 64 位操作系统上的 64 位进程。
-
@HansPassant,应用程序没有启用 LARGEADDRESSAWARE。它是内存中的二进制 blob。
标签: c++ visual-c++ 32bit-64bit