zoukankan      html  css  js  c++  java
  • #ifdef的用法

    #ifdef的用法
    灵活使用#ifdef指示符,我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。
    代码举例:新建define.cpp文件

    #include "iostream.h"
    int main()
    {
    #ifdef DEBUG 
    cout<< "Beginning execution of main()";
    #endif 
    return 0;
    }
    运行结果为:Press any key to continue 

    改写代码如下:
    #include "iostream.h"
    #define DEBUG 
    int main()
    {
    #ifdef DEBUG 
    cout<< "Beginning execution of main()";
    #endif 
    return 0;
    } 
    运行结果为:Beginning execution of main()
    Press any key to continue

    更一般的情况是,#define语句是包含在一个特定的头文件中。
    比如,新建头文件head.h,在文件中加入代码:

    #ifndef DEBUG
    #define DEBUG
    #endif

    而在define.cpp源文件中,代码修改如下:
    #include "iostream.h"
    #include "head.h" 
    int main(){
    #ifdef DEBUG 
    cout<< "Beginning execution of main()";
    #endif 
    return 0;
    } 
    运行结果如下:Beginning execution of main()
    Press any key to continue 
    结论:通过使用#ifdef指示符,我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。
    =======================================================

    为各个版本的软件升级工作是很困难的,因为这些补丁程序都是在一套软件的基础上不断地修改与扩充而编写的,并由不同的标志文件转入到不同的模块,虽然程序 体积在不断扩大,但丝毫不影响老用户的功能,这主要是得益于C程序的#ifdef/#else/#endif的作用。

    我们主要使用以下几种方法,假设我们已在程序首部定义#ifdef DEBUG与#ifdef TEST:

      1.利用#ifdef/#endif将某程序功能模块包括进去,以向某用户提供该功能。

      在程序首部定义#ifdef HNLD:

        #define HNLD

        #ifdef HNLD

      #include"n166_hn.c"


    #endif

      如果不许向别的用户提供该功能,则在编译之前将首部的HNLD加一下划线即可。

      2.在每一个子程序前加上标记,以便追踪程序的运行。

      #ifdef DEBUG

      printf(" Now is in hunan !");

      #endif

      3.避开硬件的限制。有时一些具体应用环境的硬件不一样,但限于条件,本地缺乏这种设备,于是绕过硬件,直接写出预期结果。具体做法是:

      #ifndef TEST

      i=dial();

      //程序调试运行时绕过此语句

      #else

      i=0;

      #endif

      调试通过后,再屏蔽TEST的定义并重新编译,即可发给用户使用了。

     

    from:http://blog.csdn.net/letian_fly/archive/2008/09/11/2912817.aspx

  • 相关阅读:
    超强视频分割/剪辑软件-Ultra Video Splitter绿色便携版
    超强视频分割/剪辑软件-Ultra Video Splitter绿色便携版
    ASP.NET做WEB开发的工具选择
    ASP.NET做WEB开发的工具选择
    C#中的局部类型
    OpenCV2:幼儿园篇 第四章 访问图像
    OpenCV2:幼儿园篇 第三章 导出图像
    OpenCV2:幼儿园篇 第二章 读取图像
    OpenCV2:幼儿园篇 第一章 创建图像并显示
    MFC隐藏在黑暗之中的大坑
  • 原文地址:https://www.cnblogs.com/hachi/p/2001518.html
Copyright © 2011-2022 走看看