不久前,有人告诉我 long
在 64 位机器上不是 64 位,我应该始终使用 int
。这对我来说没有意义。我看过文档(例如 Apple 官方网站上的文档)说 long
在为 64 位 CPU 编译时确实是 64 位。我在 64 位 Windows 上查找了它,发现
- Windows:
long
和int
保持 32 位长度,并且为 64 位整数定义了特殊的新数据类型。
(来自 http://www.intel.com/cd/ids/developer/asmo-na/eng/197664.htm?page=2 )
我应该使用什么?我是否应该将 uw
, sw
((un)signed width) 定义为 long
如果不在 Windows 上,否则检查目标 CPU比特大小?
原文由 user34537 发布,翻译遵循 CC BY-SA 4.0 许可协议
long
在 Windows 平台上的大小是 32 位(4 字节)。您可以使用
sizeof(long)
来检查这一点,它以字节为单位返回大小。