一、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;

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

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

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

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

  

 

VS中Debug与Release、_WIN32与_WIN64的区别的更多相关文章

  1. VS系列软件中debug和release编译环境有什么区别

    当编译和执行一个工程时,可以在Debug和Release两种配置下执行. Debug模式用于调试程序,这是个受保护的运行环境,它将告诉你程序是否有泄露,在运行时也能对特定函数的结果进行检查.然而它生成 ...

  2. Visual Studio中Debug与Release以及x86、x64、Any CPU的区别 &&&& VS中Debug与Release、_WIN32与_WIN64的区别

    本以为这些无关紧要的 Debug与Release以及x86.x64.Any CPU 差点搞死人了. 看了以下博文才后怕,难怪我切换了一下模式,程序就pass了.... 转载: 1.https://ww ...

  3. C++中debug和release的区别 . 转载

    vc中debug和release的不同 收藏  在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是当 ...

  4. VS中的Debug 和 Release 编译方式的本质区别

    VS中的Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使 ...

  5. vs中debug和release的区别你知道吗

    在Visual Studio中,生成应用程序的时候有2种模式:Debug和Release.两者之间如何取舍呢? 一.vs中debug和release的区别 1.Debug 通常称为调试版本,它包含调试 ...

  6. Visual Studio中Debug与Release以及x86、x64、Any CPU的区别

    Visual Studio中Debug与Release的区别: 在Visual Studio中,编译模式有2种:Debug与Release.这也是默认的两种方式,在新建一个project的时候,就已经 ...

  7. Debug 和 Release 编译方式的本质区别

    一.Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程 ...

  8. vs中debug和release版本的区别(转)

    vs中的程序有debug和release两个版本,Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发 人员提供强大的应用程序调试能力.而Rel ...

  9. (原)Vs中debug和release结果不一致

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5598091.html 前两天调试程序,出现了一个很蛋疼的问题,debug和release结果不一致.网 ...

随机推荐

  1. git--创建空的分支

    背景:项目进行中,需要创建一个空分支.在Git中创建分支,是必须有一个父节点的,也就是说必须在已有的分支上来创建新的分支,如果你的工程已经进行了一段时间,这个时候是无法创建空分支的. 解决方法: 使用 ...

  2. 区块链入门(5)Truffle 项目实战,Solidity IDE, 智能合约部署

    在上一张我们学习了Truffle项目的创建,部署等相关内容,今天我们就来实战一下. 今天我们要做3件事: 1) 学习搭建一个Solidity IDE(Remix). 2) 使用这个Solidity I ...

  3. openstack swift 安装(单独对象存储服务)

    参考:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/swift.html 安装YUM包 yum install centos-re ...

  4. 2019南昌网络赛-I(单调栈+线段树)

    题目链接:https://nanti.jisuanke.com/t/38228 题意:定义一段区间的值为该区间的和×该区间的最小值,求给定数组的最大的区间值. 思路:比赛时还不会线段树,和队友在这题上 ...

  5. 2019-04(1)(Python学习)

    9.1 迭代器 创建迭代器的3种方法: 方法一: 容器对象添加 __iter__() 和 __next__() 方法(Python 2.7 中是 next()):__iter__() 返回迭代器对象本 ...

  6. webservice学习01:wsdl文档结构

    webservice学习01:wsdl文档结构 wsdl文档结构 WSDL文档示例 <wsdl:definitions xmlns:xsd="http://www.w3.org/200 ...

  7. k8s 网络模型

    一.前言 k8s对Pods之间如何进行组网通信提出了要求,k8s对集群的网络有以下要求: 所有的Pods之间可以在不使用NAT网络地址转换的情况下相互通信 所有的Nodes之间可以在不使用NAT网络地 ...

  8. MongoDB、PyMongo数据操作

    MongoDB 命令 C:\Program Files\MongoDB\Server\4.0\bin mongo 客户端 mongod 服务端 mongoexport 导出 普通格式,每条记录一行,整 ...

  9. vue中v-model 与 v-bind:value

    之前一直认为,v-model相当于下方代码的语法糖,如下: <h1>{{inputValue}}</h1> <input type="text" :v ...

  10. sqlserver 并行度

    转载地址:http://www.cnblogs.com/zhijianliutang/p/4148540.html