C++32位和64位程序的区别
原文地址:
https://blog.youkuaiyun.com/nma_123456/article/details/45077345
由于操作系统内存分配的不同,导致软件开发过程中,需要编译不同版本的软件,此处以VS为例。
1、编译程序根据需要选择不同的编译环境:
X86和win32位32位程序,X64为64位程序,可以选择不同的编辑条件形成不同位的软件。
2、代码中的基本的数据类型,会根据操作系统的位数分配内存大小:
如int型在32位操作系统为4字节,在64位系统为8字节
因此在64位上对int型数据操作,编译生成32的程序,有可能导致int型越界,软件出现问题
3、32位的程序在64位操作系统上运行,由于64位操作系统的寻址和偏移的问题,也有可能导致程序在运行过程中,计算结果与32位系统不一致
4、64位操作系统理论上能够兼容32位和64位软件,32位操作系统不能运行64程序
5、使用VS2010或VS2012开发的程序,强制编译为32位软件,在xp系统下运行有问题,有可能与.net framework版本有关系,低版本的framework不能支持高版本framework的一些控件或类库。尝试安装高版本的framework解