VS之 32 or 64

一、Debug与Release

  1. 区别

    Debug——调试版,生成的.exe中包含很多调试信息,若直接发包,比较大;

    Release——发布版

  2. 如何区分是Debug编译还是Release编译
    Debug编译有宏定义_DEBUG,若代码中定义了_DEBUG就表示是debug编译,否则是release

    编译。

    Eg: #ifdef _DEBUG
    …     // 调试时执行,发布时不执行
    #else
    …     //

二、_WIN32与_WIN64

  1. 定义

_WIN32是32位编译; _WIN64是64位编译。

之所以要分不同位数编译,最根本的目的就是提高软件的通用性,先了解几点常识:

如果电脑操作系统位数不同,那么代码中基本数据类型所占的字节也不同。
   如:32位平台下long long是8个字节(64位),而64位平台下,long 是8个字节(64位)

64位操作系统理论上可以运行32位和64位软件,而32位操作系统只能运行32位的软件。
那么如何使软件在不同平台运行?方法就是宏定义:

Eg:# ifdef _WIN64
typedef long int int64_t;
# else
extension
typedef long long int int64_t;

  1. 如何区分是32位编译还是64位编译

    在 Win32 配置下,_WIN32 有定义,_WIN64 没有定义。在 x64 配置下,两者都有定义。

    可以理解为32位不支持64位,而64位可以兼容32位。总之在 VC 下,_WIN32 一定有定义。

因此,_WIN64 用来判断编译环境是 32位 还是 64位,而WIN32或者_WIN32 可以用来
判断是否 Windows 系统(对于跨平台程序)。
    一般VS选用win32控制台程序,和win32编译方式,因为兼容性比较好,可以在32位操作
系统上运行,也可以在64位操作系统上运行。
3,应用场合
1 #ifdef _WIN64            // 说明是64位编译方式
2 typedef long long intptr_t;
3 #else
4 typedef _W64 int intptr_t;
5 #endif

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值