为什么64位Windows 7中的大小类型为uint?

为什么64位Windows 7中的大小类型为uint?,d,D,我是编程D的新手。阅读之后,我决定在我的64位Windows 7操作系统中检查size\u t类型。代码如下所示: import std.stdio; void main() { writeln("Type: ", size_t.stringof); writeln("Size: ", size_t.sizeof); } 执行后,输出为: Type: uint Size: 4 根据我的理解,size\u t的类型应该是64位操作系统上的ulong。 有人能提供线索吗?非常感

我是编程
D
的新手。阅读之后,我决定在我的
64
位Windows 7操作系统中检查
size\u t
类型。代码如下所示:

import std.stdio;

void main()
{
    writeln("Type: ", size_t.stringof);
    writeln("Size: ", size_t.sizeof);
}
执行后,输出为:

Type: uint
Size: 4
根据我的理解,
size\u t
的类型应该是
64位操作系统上的ulong。

有人能提供线索吗?非常感谢

程序的位与操作系统或编译器的位不同


使用DMD,要创建64位可执行文件,请指定
-m64
开关。默认情况下,DMD将创建与编译器具有相同位的程序,并且Windows包包含一个32位编译器。(如果您愿意,也可以从源代码构建64位编译器,但这不会影响它构建32位或64位程序的方式。)

可能您正在运行32位进程?是否正在编译64位程序?请记住,您说您使用的是64位操作系统并不能回答这个问题。@hvd:使用“
dmd-v
”命令后,它会显示“
DMD32 D编译器v2.066.1
”。我想这意味着这个
dmd
只能编译32位代码,对吗?使用
-m64
选项生成64位可执行文件。64位版本需要安装Microsoft链接器并配置dmd才能找到它,而32位版本则是开箱即用的(它自带了自己的链接器)。所以64位是可以做到的,只需要多做一点工作。我最近做的是从MS安装新的社区版Visual Studio(现在免费提供),然后运行dmd安装程序exe。它基本上是自动配置的(我仍然需要在一个点上输入c:\D路径,但其余的都可以工作),然后可以使用-m32或-m64轻松完成32位和64位操作。