为什么 size_t 的类型在 64 位 Windows 7 中是 uint?

Why the type of size_t is uint in 64-bit Windows 7?

我是编程新手D。阅读 Fundamental Types 后,我决定检查 64 位 Windows 7 OS 中的 size_t 类型。代码是这样的:

import std.stdio;

void main()
{
    writeln("Type: ", size_t.stringof);
    writeln("Size: ", size_t.sizeof);
}

执行后输出为:

Type: uint
Size: 4

据我了解,size_t 的类型在 64 位 OS 上应该是 ulong。
谁能提供任何线索?非常感谢!

您的程序的位数不同于 OS 或编译器的位数。

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