不久前,有人告诉我,在64位的机器上,long
不是64位,我应该一直使用 int
。这对我来说毫无意义。我看过一些文档(比如苹果官方网站上的文档)说,在为64位 CPU 编译时,long
的确是64位的。我在64位 Windows 上查了一下,发现
- Windows:
long
和int
保持32位长度,并使用特殊的新数据类型 定义为64位整数。
(来自 http://www.intel.com/cd/ids/developer/asmo-na/eng/197664.htm?page=2)
我该用什么?如果不在 Windows 上,我是否应该将类似 uw
、 sw
((未)有符号宽度)的值定义为 long
,或者检查目标 CPU 位大小?