关于编译64位程序的问题

Magic旭 2014-08-07 07:05:36
怎么样才算作是一个64位程序?是在程序中使用到64位变量(例如:DWORD64、INT64),还是在编译环境中设置什么?
...全文
170 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-08-11
  • 打赏
  • 举报
回复
《The Intel 64 and IA-32 Architectures Software Developer's Manual》
  • 打赏
  • 举报
回复
同一份代码,既可以采用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字节。
赵4老师 2014-08-07
  • 打赏
  • 举报
回复
64位程序可以在32位环境下的64位虚拟机里面运行
707wk 2014-08-07
  • 打赏
  • 举报
回复
引用 4 楼 zilaishuichina 的回复:
32位程序 一样可以使用 int64, 跟你使不使用64位变量 半毛钱关系也没有。 64位程序是指你在编译的时候, 编译选项设置成x64, 64位程序无法在32位环境下运行
+1
zilaishuichina 2014-08-07
  • 打赏
  • 举报
回复
32位程序 一样可以使用 int64, 跟你使不使用64位变量 半毛钱关系也没有。 64位程序是指你在编译的时候, 编译选项设置成x64, 64位程序无法在32位环境下运行
我看你有戏 2014-08-07
  • 打赏
  • 举报
回复
vs2010后的版本吧 都有设置的 64位编译出来后,32位系统就不能用了,只能在64位系统上面跑吧
勤奋的小游侠 2014-08-07
  • 打赏
  • 举报
回复
《程序员的自我修养》这本书有提到32位exe和64位的exe有什么不一样。 你要是问怎么才能开发出一个64位的程序,楼上已经有说明。
Intel0011 2014-08-07
  • 打赏
  • 举报
回复
64位变量 + 64位编译器 WIN64

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧