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

时间:2015-01-04 09:30:58

标签: d

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

import std.stdio;

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

执行后,输出为:

Type: uint
Size: 4

根据我的理解,size_t的类型应该是64 - 位OS。 任何人都可以提供任何线索吗?非常感谢提前!

1 个答案:

答案 0 :(得分:9)

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

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