我已经下载了MinGW-64,所以我现在可以使用g ++ 4.7.0(实验性)编译适用于Windows 7的64位程序.但是以下行:
cout << sizeof(long) << " " << sizeof(void*) << endl ;
Run Code Online (Sandbox Code Playgroud)
打印4 8
,而不是8 8
.g ++ 4.6.0的文档说:
64位环境将int设置为32位,将long设置为64位
有谁知道为什么sizeof(long)
不是8?
编辑添加:我的困惑的来源是64位Windows的g ++ 4.7.0(还)是GNU编译器集合的官方部分.它是第一个带有32位的64位版本long
,因此文档根本不适用于它.实际上,如果您访问相关网页,IA-32/x86-64的完整条目包括:
...