关于编译64位程序的有关问题

关于编译64位程序的问题
怎么样才算作是一个64位程序?是在程序中使用到64位变量(例如:DWORD64、INT64),还是在编译环境中设置什么?
------解决方案--------------------
同一份代码,既可以采用32位编译,也可以使用64位编译,但编译出来的程序会有些许差别:

1. 采用32位编译方式编译出来的程序,既能跑在32位的计算机上,也能跑在64位的计算机上,但无论在哪种计算机平台下,这个程序所能使用的内存上限为4GB。也就是说,即使在64位且128GB内存的计算机下,这个程序也不能使用超过4GB的内存。

2. 采用64位编译方式,生成的程序只能跑在64位计算机下(跑在32位计算机下会报错),但程序可以使用超过4GB的内存空间。

3. 某些变量类型所占的字节数有所不同,如VS2010中采用32位编译方式,指针占4字节,set类型占24字节,而在64位编译方式下指针则占8字节,set类型占48字节。当然,一些类型如char,int等,它们所占用的字节数在32位和64位方式下都一样,分别为1字节和4字节。