【发布时间】:2012-10-31 09:31:42
【问题描述】:
为什么当我在 Microsoft Visual Studio 2010 中编译为 x64 时,sizeof(unsigned int) == 4? 不是必须不应该是8 == sizeof(int)吗?我在配置管理器和 command_line_compiler 中更改平台,所有设置都是 x64,但大小为 unsigned int = 4。
我做错了什么?
【问题讨论】:
-
请注意,即使在 Unix 64 位系统上,
sizeof(int) == sizeof(unsigned int)和两者都是 4(不是 8)。在 Unix 上,long(和unsigned long)是 64 位数量;long long和unsigned long long也是如此。这是 LP64(long和指针是 64 位)模型。 Windows 64 将int和long都保留为 32 位,并且只有long long和指针是 64 位数量(LLP64 —long long和指针是 64 位)。