在 64 位 Windows 上 long 的位大小是多少?

新手上路,请多包涵

不久前,有人告诉我 long 在 64 位机器上不是 64 位,我应该始终使用 int 。这对我来说没有意义。我看过文档(例如 Apple 官方网站上的文档)说 long 在为 64 位 CPU 编译时确实是 64 位。我在 64 位 Windows 上查找了它,发现

  • Windows: longint 保持 32 位长度,并且为 64 位整数定义了特殊的新数据类型。

(来自 http://www.intel.com/cd/ids/developer/asmo-na/eng/197664.htm?page=2

我应该使用什么?我是否应该将 uwsw ((un)signed width) 定义为 long 如果不在 Windows 上,否则检查目标 CPU比特大小?

原文由 user34537 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
1 个回答

long 在 Windows 平台上的大小是 32 位(4 字节)。

您可以使用 sizeof(long) 来检查这一点,它以字节为单位返回大小。

原文由 BeeOnRope 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题